Operating SystemsCS208
What is Operating System? It is a program. It is the first piece of software to run after
the system boots. It coordinates the execution of all other
software. It provides various common services
needed by users and applications.
Operating System Definition Short definition:
a program that manages a computer’s resources and acts as an intermediary between a user and those resources
Application
Hardware
Operating system
Computer
Application
Application
User
User
Operating System (OS) Functions
For the User: Provides a user interface to let the user access hardware and software resources.
For the System: Manages all the system tasks and resources to provide security, and fair, efficient use.
Shell
Kernel
Hardware
Operating
System
Applications
Operating System Goals
Execute user programs and make solving user problems easier.
Make the computer system convenient to use.
Use the computer hardware in an efficient manner.
Parts of an Operating System User Interface (Shell)
MenuCommand LanguageGraphical User Interface (GUI)
System SecurityLogin control
Process ManagementCPU Scheduler
Parts of an Operating System Memory Management
Swapper/Pager Temporarily unused pages are stored on
disk (swapped out) When they are needed again, they are
brought back into the memory (swapped in)Garbage Collection
Resource Management File ManagementDevice Management
Operating System Terminology
KernelSoftware component that controls the
hardware directly, and implements the core privileged OS functions.
ProcessAn executing program.
Time Sharing Allows multiple processes to run on the same
computer, seemingly at the same time. CPU is multiplexed among several processes that
are kept in memory (the CPU is allocated to a process only if the process is in memory). A process is swapped in and out of memory to
the disk as needed. OS must manage process scheduling and provide
memory protection to keep one program from crashing the system or corrupting other programs.
CPU Time Slicing for Time Sharing
Only ONE process can be running on the CPU at a time.Each process is allocated a “slice” of time
in the CPU.When the time runs out, the process is
interrupted, and another process is loaded into the CPU.
The act of giving each process a small slice of time to run is called time slicing.
CPU Time Slicing
Allocate CPU to Process 1
CPU
Process 1
Process 3
Main Memory
Process 2CurrentProcess
Allocate CPU to Process 2
Allocate CPU to Process 3
Repeat until all processes have completed.
CPU execution modes CPUs supports (at least) 2 execution modes:
User mode
The code of the user programs
Kernel (supervisor, privileged, monitor, system) mode
The code of OS
The execution mode is indicated by a bit in the processor status word (PSW) (a register in the CPU)
Protecting Kernel mode OS code executes in the Kernel mode
Called via interrupts and system calls
Only the OS code is allowed to be executed in the Kernel mode
The user code must never be executed in the Kernel mode
The program counter (PC) is only set to point to the OS code when the CPU goes to the Kernel mode
Interrupts
An interrupt is the way by which the hardware informs the OS of special conditions that require OS attention
Interrupts cause the CPU not to execute the next instruction
Instead, the control is passed to OS
System Calls A System Call is used by a process to
request a service from the OS
Typical system calls
Open/read/write/close the file
Get the current time
Create a new process
Request more memory
Parallel Systems Multi-processor systems with more than one CPU in
close communication.
Tightly coupled system – processors share memory and a clock; communication usually takes place through the shared memory.
Advantages of parallel system:
Economical
Increased throughput
Increased reliability
Parallel Systems Symmetric multiprocessing (SMP)
Each processor runs an identical copy of the operating system.
Many processes can run at once without performance deterioration.
Most modern operating systems support SMP Asymmetric multiprocessing
Each processor is assigned a specific task; master processor schedules and allocates work to slave processors.
More common in extremely large systems
Distributed Systems Distribute the computation among several physical computers.
Each has its own CPU, local memory, stable storage, I/O paths connecting to the environment
Interconnections
Loosely coupled system – each processor has its own local memory; processors communicate with one another through various communications lines, such as high-speed buses or telephone lines.
Systems cooperate to maintain shared state and coordinate global information
Distributed Systems Advantages of distributed systems.
Inherent distribution Speedup - improved performance due to load sharing Fault tolerance/Reliability Resource Sharing Scalability Flexibility
Distributed Systems Network Operating System
provides file sharing provides communication scheme runs independently from other computers on the
network Distributed Operating System
less autonomy between computers gives the impression there is a single operating
system controlling the network.