300 likes | 433 Views
Chapter 3: Operating Systems. Computer Science: An Overview Eleventh Edition by J. Glenn Brookshear. Chapter 3: Operating Systems. 3.1 The History of Operating Systems 3.2 Operating System Architecture 3.3 Coordinating the Machine’s Activities 3.4 Handling Competition Among Processes
E N D
Chapter 3: Operating Systems Computer Science: An OverviewEleventh Edition by J. Glenn Brookshear
Chapter 3: Operating Systems • 3.1 The History of Operating Systems • 3.2 Operating System Architecture • 3.3 Coordinating the Machine’s Activities • 3.4 Handling Competition Among Processes • 3.5 Security
Functions of Operating Systems • Oversee operation of computer • Store and retrieve files • Schedule programs for execution • Coordinate the execution of programs
Evolution of Shared Computing • Batch processing • Interactive processing • Requires real-time processing • Time-sharing/Multitasking • Implemented by Multiprogramming • Multiprocessor machines
Types of Software • Application software • Performs specific tasks for users • System software • Provides infrastructure for application software • Consists of operating system and utility software
Operating System Components • Shell: Communicates with users • Text based • Graphical user interface (GUI) • Kernel: Performs basic required functions • File manager • Device drivers • Memory manager • Scheduler and dispatcher • determines which activities are to be considered for execution; controls the allocation of time to the activities
Figure 3.4 The shell as an interface between users and the operating system
File Manager • Its job is to coordinate the use of the machine’s mass storage facilities. It “records” • Where each file is located • Which users are allowed to access the various files • Which portions of mass storage are available for new files or existing files • Directory (or Folder): A user-created bundle of files and other directories (subdirectories) • Directory Path: A sequence of directories within directories
Device Drivers • Device drivers are the software units that communicate with the controllers to carry out operations on the peripheral devices. • translates generic requests into the more technical steps required by the device • e.g., reading and decoding a printer’s status word as well as all the other handshaking details • The other software components can merely rely on the device drivers to take care of the details.
Memory Manager • Allocates/reclaims space in main memory • ensure that the actions of each program are restricted to the program’s allotted space • Paging: The memory manager may create the illusion that the machine has more memory than it actually does (virtual memory) by playing a “shell game” in which blocks of data (pages) are shifted back and forth between main memory and mass storage
Getting it Started (Bootstrapping) • Bootstrap: Program in ROM (example of firmware: software recorded in hardware) • Run by the CPU when power is turned on • The program counter of the CPU starts with a particular predetermined address pointing to ROM • Transfers operating system from mass storage to main memory (which is essentially empty when the machine is first turned on) • Executes jump to operating system • BIOS (basic I/O system) in ROM • a collection of software routines for fundamental I/O activities
Processes • Process: The activity of executing a program • Program: a static set of directions • Process: a dynamic activity whose properties change as time progresses • Analogy: a piece of sheet music vs. a musician performing that piece • Process State: Current status of the activity • Program counter • General purpose registers • Related portion of main memory
Process Administration • Scheduler: Adds new processes to the process table and removes completed processes from the process table • Each entry in the process table contains: (1) memory area, (2) priority, and (3) ready or waiting • Dispatcher: Controls the allocation of time slices to the processes in the process table • The end of a time slice is signaled by an interrupt. • Process (or context) switch
Interrupt Handling • The CPU completes its current machine cycle • Save the current process’s state • Begin execution of a program, called an interrupt handler, which is a part of the dispatcher • Selects the highest-priority ready process from the process table • Restarts the timer circuit and begin the next time slice
Handling Competition for Resources • A simple flag system: interrupt problem (interrupt disable&enable, test-and-set instr.) • Semaphore: A “control flag” • Critical Region: A group of instructions that should be executed by only one process at a time • Mutual exclusion: Requirement for proper implementation of a critical region
Semaphore • A semaphore S is an integer variable that is accessed only through two standard atomic operations: wait and signal. • Wait(S): while S<=0 do no-op; S:=S -1; • Signal(S): S:=S + 1;
Semaphore (Cont.) repeat wait(S) critical region signal(S) remainder section until false
Deadlock • Processes block each other from continuing • Conditions required for deadlock 1. Competition for non-sharable resources 2. Resources requested on a partial basis 3. An allocated resource can not be forcibly retrieved
Figure 3.7 A deadlock resulting from competition for nonshareable railroad intersections
Deadlock detection and avoidance • Converting nonshareable resources into shareable ones, e.g., spooling (holding data for output at a later but more convenient time) • Requiring each process to request all its resources at one time • Administrator uses his/her powers as “super-user” to forcibly retrieving some of the allocated resources
Security • Attacks from outside • Problems • Insecure passwords • Unusual behavior • Sniffing software • Counter measures • Auditing software
Security (continued) • Attacks from within • Problem: Unruly processes (e.g., tricking file or memory manager) • Special-purpose registers to store the upper and lower limits of a process’s allotted memory area • Counter measures: Control process activities via privilege levels (privileged modes and privileged instructions) for CPU operations • When allowing a process to start a time slice, CPU is switched to nonprivileged mode