Closing Statement at bottom:
The computer system was developed before, the
Operating System! The first computer was digital (binary 1-0) and the computer was
operated by a programmer which, operated the computer from a console. The programmer had
to master the entire system operation! Data was install into the computer by control cards
and reader cards but, the results "might" go to punch cards or line printers.
The control, reader, and punch cards were developed out of paper. The control cards loaded
instructions and the reader cards carried the data. The program loaded "usually"
(unless-error) ran a long time to process data. There was no-interaction between jobs so,
errors in a program was hard to debug (fix). Device drivers, "libraries" of
commonly used functions, and program languages with their compilers were introduced.
Computer operators were hired to run the computer programs "more" efficiently.
The operator started to batch similar programs together so, one program ran after another
to speed-up results (turnaround-time) of processes. There was a program introduced called
the "Resident Monitor" which, existed in memory. The program interpreted the
control cards, loaded data into memory, and job control - coordinate between jobs
(programs). The resident monitor was the first simple Operating System.
Our country could use a development of the
"Resident Monitor." I think, it could "help,"
with most the governments working together. I was a school hall patrol, cub scout,
weebb-lows, and a boy scout! Truthfully: My sister Theresa wanted to be a girl scout and
mom said, No! I wonder why? Click Here: Resident Monitor
How do we find the "world" called the
Operating System? The computer lives among us but, the world it offers us goes beyond our
imagination. One of my teachers: Once told, we must open our mind! We live in a
universe (solar system) full of planets which exist beyond our expectation of
understanding. The computer "lives" among us so, we should understand its
(solar-system) basic-concepts. "Okay," the information Im writing
is important so, study, understand, and vision the concepts of "all" sentences.
Do not forget! The concepts are hard to understand! Study five-ten sentences at a time
until, you learn them by heart! You will get it in time so, open your "mind" to
the "world" called the Operating System.
The Operating System (OS) is software running
(processes) in an environment of hardware. The hardware consists of CPU, Memory,
Motherboard, I/O devices (monitor, keyboard, etc.) but, the internal "concepts"
describe the "basic" computer operation. The OS operates between the
"hardware" and the "software" so, the OS controls resources (memory)
and distributes resources (user). The system bus connects all devices (CPU, Memory, I/O
devices, etc) to allow communication between them. The system bus is an electronic pathway
(wires) of many-lines to carry (programs) data among the devices. Most computers use data
lines, address lines, and control lines to transport information and communication between
devices. The hardware (I/O devices) is always ready (listen) for a signal from (CPU) the
control line which, usually means data is coming or needed. The address lines carry the
data address to/from locations (memory-I/O devices) and the data line carries data to/from
a location. "Lets" look a little deeper inside! Between the "system
bus" and "I/O devices" are device controllers used to speed up the transfer
of data down the system bus. The device controller reads data from I/O devices into the
controllers buffer (memory) so, data traveling down the system bus gets transferred
"faster" from the controllers buffer to ram (memory). The controller interrupts
the CPU by control lines so, the CPU is handling a lot of interrupts. We will study
"interrupts" - "routines" in a little bit! To free the CPU from
interrupts, DMA controller (direct memory access) was developed to speed the flow of data
(I/O devices - memory) without interrupting the CPU so, Much. "Getting Harder!"
Open your mind to the world! The DMA controller operates off the OS (device driver)
instead the CPU so, the controller will interrupt the CPU "only" when data task
(process) is complete or next block of data is needed for a task. We will study
"process" later! The OS (device driver) loads the DMA controller an address to
ram with instructions so, controller transfer data between I/O device into its buffer then
transfers data to ram (memory). When task is complete, the controller interrupts the CPU
to signal completion. If more data is needed, the CPU loads next address with instruction
to the controller. The DMA controller is use on fast I/O devices! The brain of the
computer is the CPU which, is design to process data and hardware control by system bus.
The CPU is complex in design but, we must understand the internal concepts which, allows
processing code and data. Inside the CPU is a "control unit" which controls data
to/from CPU. There is an arithmetic logic unit to do math or comparison. The instruction
register decodes program instructions and "Important" the program counter (IP)
shows next address of data (code) to be loaded into the CPU. There are other GPR registers
(general-purpose registers) to hold code and data inside the CPU. The Intel chip uses
segment registers (16bit) to hold code, data and more.. The CPU operates off an
"instruction-set" (reduced or complex instructions -code) which, allows the CPU
to operate proper by the operation system. Inside the CPU is a "bus controller"
so, the system bus is controlled by the CPU. Open your mind to see the CPU, system bus,
device controllers, and I/O devices. The memory controller (MMU or memory management unit)
is connected to the system bus and it controls shared resources in ram. "Hold
-On," as we go deeper into a universe to find the OS. It is here,
"somewhere." When we find it, how do we communicate with it? You will soon
see
FIRST lets see how the OS communicates with "Software" and
"Hardware" by the system bus.
The interrupt signal allows the OS to communicate
with "software" or "hardware." The signal is sent down the control
line (system bus) from I/O device to the CPU (both-ways) and the OS grabs control. Two
methods are used to handle interrupts: "interrupt" or "trapped." I
will classify the interrupt as "hardware" control and the trap as
"software" control. Hardware and Software owns "routines" to handle
how the device or software functions within the OS. The OS handles proper operation
control so, the OS needs a routine/handler for each device or software to allow
"proper" operation. The OS uses a table (list) in ram called the "interrupt
vector table" to handle routines. The table stores "addresses" of all the
routines for hardware and software so, the OS can quickly find the proper routine to
handle the interrupt. When an interrupt occurs, the OS "stops" all process and
handles the interrupt. The OS backs up CPU program counter and registers so, the interrupt
can be handled. The address of the interrupt "routine" is loaded into the CPU
program counter (PC) and the OS handles the interrupt. The OS restores CPU program counter
after, the interrupt was handled. The CPU program counter and registers are restored with
"old" process and the CPU continues as the interrupt never occurred. Traps?
Software is handled by traps! The OS traps software for two reasons: Error in software is
trapped to the OS and "System-Call" is a software interrupt who, needs
assistance from the OS. Software interrupts are usually transferred by CPU (hardware
controlled) to the OS. Bootstrap or ROM Bios are system files loaded at boot up. The
system files (OS) are stored in ram (memory) to start the computer system. The system
files in ram are known as the "kernel." The interrupt vector table is stored in
the kernel so, the OS has quick access to find "routine" addresses. Pretty
Simple! "Hold-On" Communication with the Operation System! There are two ways to
communicate with the OS: kernel supported and a program outside the kernel. The program is
called the command interrupter! Unix and Dos command interrupter lives outside the kernel
and Windows command interrupter "lives" in the kernel. Windows graphics (gooies)
are kernel supported and Dos (text) are supported outside the kernel. The command
interrupter gives us access to the OS and the OS gives us access to memory and file
storage. The memory uses a "base + limit" which, gives the user access to ram.
The user owns space in ram to "execute" programs. What does the computer do
when, you click an icon on your desktop? Remember! Interrupt
"software or
hardware" - Software! How does the OS handle software? Trap
What kind? System
Call! Why? The "software" (application) needs assistance from the OS to execute
operation.
The OS was developed over years of research but,
several "techniques" are important to understand the improvements of the
computer system. The first simple OS was a program loaded at boot up called the
"resident monitor." The OS allows operation of the computer without, you doing
all the work! Control cards, reader cards, magnetic tapes, which lead to off-line
processing and "finally" magnetic disk. The magnetic disk (hard-drive) gives us
"DIRECT" access to all data on disk. In order for a program to execute, it must
be loaded into ram. Ram is the primary storage for the CPU since, the CPU can
"only" process data from ram. Magnetic disk stores a lot of programs with direct
access so, programs are available to transfer code/data to ram. "Now," multiple
programs on a disk allows: OVER-LAP OF I/O and "Job Scheduling" so, job
scheduling decides which programs get loaded into ram and number of programs!
Multiprogramming stands for multi programs (jobs) in memory and job scheduler controls
number of programs loaded into memory. "Now," several programs loaded into
memory started "CPU scheduler" who, controls a program (data) from ram to CPU.
The CPU scheduler decides on the process (program) to load into the CPU. The OS operates
the CPU scheduler and Job scheduler whom, is really owned by the OS. "Now," a
computer operates much faster processing data (programs). Programs to large for memory
caused a major problem! "Virtual Memory" was introduced which, allowed a program
to run not completely in memory. The disk (hard-drive) was used to simulate ram! Cache was
introduced which, speed up data transfer between two devices of different speed. There are
a lot of different caches within the computer system. Think? The temp folder in window
explore uses cache. The OS uses cache to speed up data transfer (process) by storing data
in ram without the CPU request. If the CPU request more data, the OS looks first in ram.
There are two types of software: system software and application software. System software
"helps" the computer basic operation and application software "helps"
the user accomplish a task.
The OS controls process (CPU & Job scheduler),
file management, memory management, and device management. Files are stored on the
hard-drive so, the OS uses a table (fat allocation table) to keep track of data and their
physical location. The hard-drive is divided into tracks and sectors which, all sectors
own an address by the OS. The sector is 512bytes in size and the OS controls information
written into the sectors. The OS has to know where, to put the data! The OS allows us to
store files so, there must be a file management. The OS allows us to logical store files
but, their physical storage remains in the sectors (cluster) on the hard-drive. Learn the
difference between "physical" and "logical." The computer file storage
(logical) appears simple but, the physical storage requires OS assistance. Are you lost?
This map opens a "universe" to a "world" called the Operation System.
"Get ready," we are traveling into cyber-space!
How does the Operating System handle a process?
Process is a program in execution but, the process includes code and data in ram, OS
resources, CPU registers, I/O devices (required), and etc. used by the process.
"Remember," the interrupt gets the operating system attention! When an interrupt
occurs, the OS creates a block (file) called the process control block. The block is used
to store all information required, to handle the process. The block owns an address called
the product PID and the address of the data location to be loaded into the CPU program
counter. The block stores information on the process state: New, Ready, Running, Wait, and
Terminated. Process "states" will be covered shortly! Code and data is stored in
the Process Control Block! What else? The process control block (PCB) is stored in two
ways: queue or stacked. Queue is a waiting place and stack is a stack-em-up! Lets talk
about, Queue! The process control block exist in the kernel (OS files) which, exist in
ram. When a process is started, the PCB is created in ram since, the CPU processes data
out of ram. There are two types of process: cooperating and independent process. The
cooperating process shares code/data space with processes and the independent does not
share code/data space! How does the cooperating process work? "Someone," smart
developed a technique called "Threads!" What are threads? Its a long
string of data! Independent processes share code/data space "alone" so, the
process used "one" thread. Multi- threads allow processes to share code, data,
and OS resources independently! Code, data, OS resources, are divided by
"threads" so, information can be shared between, "processes." Threads
allow programs to communicate between, programs, however; we are really talking about,
processes. Information Sharing! When you are working in MS Word, click the print button!
"Now," whats the number of processes running, "one" or "two
processes? Threads allow programs (process) to share information! Pretty Cool.. "Long
time ago," Viken ships rowed to the beat of a drum! BOOM.. BOOM.. The men paddled the
massive ship across the ocean. The computer system (OS) operates off a System-Clock
(beat). When the system clock goes "Boom," an electrical pulse sent down the
system bus. Boom! "One-cycle." Boom! "Two-cycles." so, On.. The
system-clock is "only" a signal to send an electrical-pulse downs the system
bus. The computer is executing "millions" of cycles per-pulse off the beat of
the System-Clock. "Boom!" "One" process control block (PCB) is sent
down system bus. Lets get back to the process "State."