Operating Systems: Components and Duties Ref: & Silberschatz, Gagne, & Galvin, Operating.

55
Operating Systems: Components and Duties Ref: http:// userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7 th ed, Wiley (ch 1-3) NOTE: this lecture and the next two lectures are intended to provide an overview of OS concepts important to the study of embedded systems. For more comprehensive information, please visit the website listed at the bottom of the slides and the material accessible there.

Transcript of Operating Systems: Components and Duties Ref: & Silberschatz, Gagne, & Galvin, Operating.

Page 1: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Operating Systems:Components and Duties

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

NOTE: this lecture and the next two lectures are intended to provide an overview of OS concepts important to the study of embedded systems. For more comprehensive information, please visit the website listed at the bottom of the slides and the material accessible there.

Page 2: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

What is an Operating System?

• A program that acts as an intermediary between a user of a computer and the computer hardware.

• 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.

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 3: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

System ComponentsSystem Components

The operating system runs in kernel or supervisor mode - protected from user tamperingCompilers, editors and application programs run in user mode

Instruction Set Architecture

Physical devices grouped together to form functional units

Integrated circuit chips, power supply, CRT

Hides the complexity of machine language from programmer

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 4: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Functions of an OS• User Environment - OS layer transforms bare

hardware machine into higher level abstractions– Execution environment - process management, file

manipulation, interrupt handling, I/O operations, language.

– Error detection and handling– Protection and security– Fault tolerance and failure recovery

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 5: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Functions of an OS (continued)• Resource Management

– Time management• CPU and disk transfer scheduling

– Space management • main and secondary storage allocation

– Synchronization and deadlock handling• IPC, critical section, coordination

– Accounting and status information• resource usage tracking

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 6: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Typical memory layoutSeveral jobs are kept in main memory at the same time, and the CPU is multiplexed among them.

OS tasks:•Memory management – the system must allocate the memory to several jobs.•CPU scheduling – the system must choose among several jobs ready to run.•Allocation of devices.

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 7: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Real-Time Systems• Designed for a dedicated application such as scientific experiments or industrial

processes, medical imaging and devices, consumer products, avionics, and automobiles

• Responsibilities have well-defined, fixed time constraints• Hard real-time:

– MISSED DEADLINE IS A SYSTEM FAILURE– Secondary storage limited or absent, data stored in short term memory, or

read-only memory (ROM)– Not supported by general-purpose operating systems.

• Firm real-time– OCCASIONAL MISSED DEADLINES ARE TOLERABLE but quality of service may

degrade– a result is useless if it is provided after the deadline

• Soft real-time– The usefulness of a result and the quality of service degrade if the result is

provided after the deadline – System may attempt to maximize the number of deadlines met or the

number of high-priority tasks meeting their schedules or to minimize the lateness of tasks, for example

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 8: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Computer-System Operation• Starting up a computer

– Initial program, or bootstrap program, is run– Stored in ROM or EPROM within the computer hardware– Initializes all aspects of the computer (registers, controllers,

memory etc.)– Loads the operating system and executes it

• Locates and loads the OS kernel– Once loaded, the OS waits for an event to occur

• Events usually signaled by an interrupt from either the hardware or software

– Hardware sends a signal to the CPU via the system bus

– Software triggers an interrupt by executing a system callRef: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 9: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Device Controller

• A computer system typically consists of a CPU and multiple device controllers connected through a common bus

• Each device controller is in charge of a specific device or multiple devices (e.g. SCSI controller)

• Device controller maintains local buffer storage and a set of special purpose registers

• The device controller moves data between the device it controls and its local buffer storage

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 10: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Interrupts• Interrupts enable software to respond to signals

from hardware– May be initiated by a running process

• Interrupt is called a trap – software generated caused by error or user request for an OS service

• Dividing by zero or referencing protected memory– May be initiated by some event that may or may not be related

to the running process• Key is pressed on a keyboard or a mouse is moved

– Low overhead

• Polling is an alternative approach– Processor repeatedly requests the status of each device– Increases in overhead as the complexity of the system increases

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 11: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Handling Interrupts• After receiving an interrupt, the processor completes execution of the

current instruction, then pauses the current process• The processor will then transfer to a fixed location and executes the

service routine for the interrupt• The interrupt handler determines how the system should respond• Interrupt handlers are stored in an array of pointers called the interrupt

vector– To handle the interrupt quickly, a table of pointers is

generally stored in low memory which hold the addresses of the ISR for the various devices

– This array, or interrupt vector, of addresses is then indexed by a unique device number to provide the address of the ISR for the interrupting device

• After the interrupt handler completes, the interrupted process is restored and execution continues from the address of the interrupted instruction (stored on stack) or the next process is executed

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 12: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Interrupt Classes

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

EXAMPLE: Intel IA-32 exception classes

Page 13: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

EXAMPLE: Intel IA-32 exception classes (continued)

Interrupt Classes

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 14: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

I/O Interrupts• To start an I/O operation, the CPU loads the appropriate

registers within the device controller• The device controller examines the values and determines

what action to take (e.g. read, write)• When the transfer is complete, the device controller

informs the CPU via an interrupt• The device driver returns control to the OS

– Returns the data or pointer to the data if a read was done– For other operations it returns status information

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 15: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

I/O Interrupts• Synchronous:

– After I/O starts, control returns to user program only upon I/O completion.

– Wait instruction or tight loop (Loop: jmp Loop) idles the CPU until the next interrupt

– At most one I/O request is outstanding at a time, no simultaneous I/O processing.

• Asynchronous:– After I/O starts, control returns to user program without

waiting for I/O completion.– Increased system efficiency by increasing CPU utilization

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 16: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Device-Status Table

Device-status table contains entry for each I/O device indicating its type, address, and state.Operating system indexes into I/O device table to determine device status and to modify table entry to include interrupt.If the device is busy with a request, the type of request and other parameters are stored in the table entry for that deviceA queue will contain a list of all those requests waiting for a device Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 17: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Hardware Protection

• Dual-Mode Operation• I/O Protection• Memory Protection• CPU Protection

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 18: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Dual-Mode Operation• Sharing system resources requires operating system to

ensure that an incorrect program cannot cause other programs to execute incorrectly as well as to protect the OS from errant user programs

• Provide hardware support to differentiate between at least two modes of operations.– User mode – execution done on behalf of a user.– Monitor mode (also kernel mode or system mode) –

execution done on behalf of operating system. – MS-DOS for the Intel 8088 had no mode bit

• User program can wipe out the OS• Multiple programs can write to a device simultaneously

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 19: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Dual-Mode Operation (Cont.)• Mode bit added to computer hardware to indicate the current mode: monitor (0) or

user (1).• When an interrupt or trap (program error) occurs hardware switches to monitor mode.

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 20: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

I/O Protection• All I/O instructions are privileged instructions.• Must ensure that a user program could never gain

control of the computer in monitor mode (i.e., a user program that, as part of its execution, stores a new address in the interrupt vector).

• System call - A privileged instruction provides a means for the user to interact with the OS to perform tasks that only the OS can do– Treated by the hardware as a software interrupt– Switch to monitor mode jumping to the address

determined by the interrupt vector

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 21: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Memory Protection

• Must provide memory protection at least for the interrupt vector and the interrupt service routines.

• In order to have memory protection, add two registers that determine the range of legal addresses a program may access:– Base register – holds the smallest legal physical memory

address.– Limit register – contains the size of the range

• Memory outside the defined range is protected.• Base and limit registers can be loaded only by the

OS which uses a special privileged instruction (which can be executed only in monitor mode)

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 22: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Use of A Base and Limit Register

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 23: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Hardware Protection• CPU hardware compares every address generated in

user mode with the registers• Any violation results in a trap to the monitor which

treats it as a fatal error• When executing in monitor mode, the operating

system has unrestricted access to both monitor and user’s memory.

• The load instructions for the base and limit registers are privileged instructions.

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 24: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

CPU Protection• Timer – interrupts computer after specified period

to ensure operating system maintains control.– Timer is decremented every clock tick.– When timer reaches the value 0, an interrupt occurs.

• Timer commonly used to implement time sharing – interrupt every N milliseconds (a time slice) at which

time a context switch occurs• Performs housekeeping on the program just stopped, saves

registers, internal variables, buffers etc. and prepares for the next program to run

• Load-timer is a privileged instruction.

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 25: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Protection and Security• Protection controls the access of processes or

users to the resources of the computer system– Distinguish between authorized and

unauthorized use • Security defends a system from external and

internal attacks– Viruses, worms, denial of service attacks,

identify theft

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 26: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Operating-System Structures

• System Components• Operating System Services• System Calls• System Programs• System Structure • Virtual Machines• System Design and Implementation

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 27: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Common System ComponentsA system as large and complex as an OS can be created only by partitioning it into smaller pieces*•Process Management •Main Memory Management•File Management•I/O System Management•Secondary Management•Networking•Protection System•Command-Interpreter System

*italicized topics will not be discussed here

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 28: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Process Management• A process is a program in execution. A process needs

certain resources, including CPU time, memory, files, and I/O devices, to accomplish its task.– A process is the unit of work in a system

• The operating system is responsible for the following activities in connection with process management.– Process creation and deletion.– Process suspension and resumption.– Provision of mechanisms for:

• process synchronization• process communication

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 29: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

I/O System Management

• Hide the peculiarities of specific hardware devices from the user

• The I/O system consists of:– A memory management component that includes

buffering, caching and spooling– A general device-driver interface– Drivers for specific hardware devices

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 30: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Protection System• Protection refers to a mechanism for

controlling access by programs, processes, or users to both system and user resources.

• The protection mechanism must: – distinguish between authorized and unauthorized

usage.– specify the controls to be imposed.– provide a means of enforcement.

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 31: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Command-Interpreter System• Serves as the interface between the user and the OS

– User friendly, mouse based windows environment in the Macintosh and in Microsoft Windows

– In MS-DOS and UNIX, commands are typed on a keyboard and displayed on a screen or printing terminal with the Enter or Return key indicating that a command is complete and ready to be executed

• Many commands are given to the operating system by control statements which deal with:– process creation and management– I/O handling– secondary-storage management– main-memory management– file-system access – protection – networking

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 32: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Command-Interpreter System (Cont.)

• The program that reads and interprets control statements is called variously:

– command-line interpreter– shell (in UNIX)

Its function is to get and execute the next command

statement.

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 33: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

System Calls• System calls provide the interface between a running program and the

operating system.– For example – open input file, create output file, print message to console,

terminate with error or normally– Generally available as routines written in C and C++– Certain low-level tasks (direct hardware access) may be written in

assembly-language• Mostly accessed by programs via a high-level Application Program Interface

(API) rather than direct system call use– Provides portability (underlying hardware handled by OS)– Hides the detail from the programmer

• Three most common APIs are Win32 API for Windows, POSIX API for POSIX-based systems (including virtually all versions of UNIX, Linux, and Mac OS X), and Java API for the Java virtual machine (JVM)

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 34: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Example of Standard API• Consider the ReadFile() function in the• Win32 API—a function for reading from a file

• A description of the parameters passed to ReadFile()– HANDLE file—the file to be read– LPVOID buffer—a buffer where the data will be read into and written from– DWORD bytesToRead—the number of bytes to be read into the buffer– LPDWORD bytesRead—the number of bytes read during the last read– LPOVERLAPPED ovl—indicates if overlapped I/O is being used

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 35: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

System Call Implementation• Typically, a number associated with each system call

– System-call interface maintains a table indexed according to these numbers

• The system call interface invokes intended system call in OS kernel and returns status of the system call and any return values

• The caller need know nothing about how the system call is implemented– Just needs to obey API and understand what OS will do as a

result call– Most details of OS interface hidden from programmer by API

• Managed by run-time support library (set of functions built into libraries included with compiler)

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 36: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

API – System Call – OS Relationship

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 37: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Standard C Library Example• C program invoking printf() library call, which

calls write() system call

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 38: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

System Call Parameter Passing• Often, more information is required than simply identity

of desired system call– Exact type and amount of information vary according to OS

and call• Three general methods used to pass parameters to the OS

– Simplest: pass the parameters in registers• In some cases, may be more parameters than registers

– Parameters stored in a block, or table, in memory, and address of block passed as a parameter in a register • This approach taken by Linux and Solaris

– Parameters placed, or pushed, onto the stack by the program and popped off the stack by the operating system

– Block and stack methods do not limit the number or length of parameters being passed

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 39: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Passing Parameters as a Table

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 40: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Types of System Calls• Process control

– end, abort, load, execute, allocate/free memory• File management

– Create/delete file, open, close, read, write• Device management

– Request/release device, read, write• Information maintenance

– Get/set date or time, get process, get/set system data• Communications

– Send/receive message, create/delete comm link

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 41: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Example: UNIX System Calls

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 42: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

UNIX Running Multiple ProgramsFreeBSD is a multitasking system Shell accepts a command to run a program but,

unlike MS-DOS, continues to run while the other program is executing

To start a new process, the shell executes a fork system call which enables another program to be loaded into memory and executed

A process can run in the “background” but then it can not accept input from the keyboard (as it is dedicated to the shell) but can read and writes files

The shell again waits for further commands – run another program, monitor the progress of the running processes, change priorities, etc.

When a process terminates it issues an exit system call returning a status code

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 43: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

UNIX Running Multiple Programs

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 44: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

System Programs• System programs provide a convenient environment for program

development and execution. The can be divided into:– File manipulation – Status information (date,time, # of users, free memory etc.)– File modification (text editors)– Programming language support (compilers, assemblers, etc)– Program loading and execution (loaders, linkage editors)– Communications (create virtual connections among processes, users and

different computer systems)– System utilities or application programs (web browsers, word processing,

spreadsheets etc)• Most users’ view of the operating system is defined by system programs,

not the actual system calls.

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 45: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

OS Design Implementation• Mechanisms determine how to do something,

policies decide what will be done.• The separation of policy from mechanism is a very

important principle in designing an OS– It allows maximum flexibility if policy decisions are to be

changed later.• The mechanism that implements the policy to give priority to

I/O intensive processes over CPU intensive processes should be written in a general way so that if the policy is changed no or minimal change to the mechanism would be required

• The timer provides is a mechanism providing CPU protection. How long it runs for a particular user is a policy decision.

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 46: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

System Implementation• Traditionally written in assembly language, operating systems can now be

written in higher-level languages.• Code written in a high-level language:

– can be written faster.– is more compact.– is easier to understand and debug.

• Opponents to OS written high-level language claim slower performance and increased storage

• Proponents argue:– Modern compilers can produce highly optimized code– Todays OSs run on highly complex hardware which can overwhelm the

programmer with details– Better data structures and algorithms will truly improve the performance

of OSs– Only a small amount of code is critical to high performance – bottlenecks

can be replaced with assembler code later on• An operating system is far easier to port (move to some other hardware) if it

is written in a high-level language.

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 47: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Operating System Structure: MS-DOS

• MS-DOS – written to provide the most functionality in the least space– Not well divided into modules– Designed without realizing it was

going to become so popular– Although MS-DOS has some

structure, its interfaces and levels of functionality are not well separated

– Vulnerable to system crashes when a user program fails

– Written for Intel 8088 which had no dual mode or hardware protection

MS-DOS layer structureMS-DOS layer structure

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 48: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Operating System Structure: UNIX

• UNIX – the original UNIX operating system had limited structuring due to limited hardware functionality.

• The UNIX OS consists of two separable parts.– Systems programs– The kernel – series of interfaces and device drivers

• Consists of everything below the system-call interface and above the physical hardware

• Provides the file system, CPU scheduling, memory management, and other operating-system functions; a large number of functions for one level.

• All this functionality in one level makes UNIX difficult to enhance – difficult to determine impact of change in one part of the kernel on other parts

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 49: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

UNIX System Structure

kernel

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 50: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Virtual Machines• A virtual machine treats hardware and the operating system kernel as

though they were all hardware.• A virtual machine not provide any additional functionality but provides an

interface identical to the underlying bare hardware. Each process is provided with a (virtual) copy of the underlying computer

• The operating system creates the illusion that a process has its own processor with its own (virtual) memory.

• The resources of the physical computer are shared to create the virtual machines.– CPU scheduling can create the appearance that users

have their own processor.– Spooling and a file system can provide virtual card

readers and virtual line printers.– A normal user time-sharing terminal serves as the

virtual machine operator’s console.

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 51: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

System Models

Non-virtual Machine Virtual Machine

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 52: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Virtual Machines • The virtual-machine concept provides complete protection

of system resources since each virtual machine is isolated from all other virtual machines. This isolation, however, permits no direct sharing of resources.

• A virtual-machine system is a perfect vehicle for operating-systems research and development. System development is done on the virtual machine, instead of on a physical machine and so does not disrupt normal system operation.

• The virtual machine concept is difficult to implement due to the effort required to provide an exact duplicate to the underlying machine

• Virtual machines are a means to solve system compatibility problems– Windows applications to run on Linux-based computers

• Intel instructions are translated into the native instruction set

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 53: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Java Virtual Machine• A platform is the hardware or software

environment in which a program runs. Some of the most popular platforms are Windows 2000, Linux, Solaris, and MacOS.

• Most platforms can be described as a combination of the operating system and hardware. The Java platform differs from most other platforms in that it's a software-only platform that runs on top of other hardware-based platforms.

• Compiled Java programs are platform-neutral bytecodes executed by a Java Virtual Machine (JVM).

• The JVM is specific for each system and it abstracts the system in a standard way to the Java program eliminating code changes when ported from one platform to another

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 54: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Communication ModelsCommunication between processes may take place using either message passing or shared memory.Message passing Information is exchanged through an interprocess

communication facility provided by the OS Computers have host names, processes have process

names for identification purposes Useful when smaller number of data need to be

exchanged Easier to implement than shared memory

Shared memory Processes use map memory system calls to gain access

to regions of memory owned by other processes Allows maximum speed and convenience of

communication Problems arise in the area of protection and

synchronizationRef: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)

Page 55: Operating Systems: Components and Duties Ref:  & Silberschatz, Gagne, & Galvin, Operating.

Communication Models

Message Passing Shared Memory

Ref: http://userhome.brooklyn.cuny.edu/irudowdky/OperatingSystems.htm & Silberschatz, Gagne, & Galvin, Operating Systems Concepts, 7th ed, Wiley (ch 1-3)