300 likes | 456 Views
Explore the history, architecture, and functions of operating systems, including coordinating machine activities, handling process competition, and ensuring security. Learn about software types, operating system components like the shell and file manager, and the booting process. Discover the role of device drivers, memory managers, and interrupt handling in managing resources. Dive into process administration, process states, and ways to handle competition for system resources using semaphores and critical regions.
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