Presentation is loading. Please wait.

Presentation is loading. Please wait.

SYSC3001 Operating Systems and Data Bases

Similar presentations

Presentation on theme: "SYSC3001 Operating Systems and Data Bases"— Presentation transcript:

1 SYSC3001 Operating Systems and Data Bases
From calendar: Management of CPU (scheduling) processes, memory, disk, and files. Implications of concurrency. Concurrent programming, including interprocess communications in distributed systems. Data base models and query languages.

2 Computer Systems Overview
Basically Chapter 1 in textbook Need some basic understanding of computer organization and hardware: processor memory I/O devices “Left as an exercise”

3 Chapter 2: Operating Systems Overview
What is an Operating System? Services provided by an OS Evolution of the OS Desired Hardware Features to support the OS Multiprogramming Time Sharing Systems Difficulties of the OS Design Achievements of the OS System Structure of the OS Modern OS

4 Operating System Is a program that controls the execution of application programs Tells the CPU when to execute other programs Uses the hardware efficiently Is an interface between the user and hardware Masks the details of the hardware to application programs Hence OS must deal with hardware details Make the system convenient to use

5 Layers and Views The OS typically is further divided
into multiple layers.

6 Operating Systems Definitions
Resource manager: manages and allocates resources (CPU, memory, I/O, software processes) Control program: control the execution of user programs Kernel: the one program running at all times (all else being application programs)

7 Services Provided by the OS
Facilities for Program creation editors, compilers, linkers, and debuggers Program execution loading in memory, I/O and file initialization Access to I/O and files deals with the specifics of I/O and file formats System access Protection in access to resources and data Resolves conflicts for resource contention

8 Services Provided by the OS
Error Detection internal and external hardware errors memory error device failure software errors arithmetic overflow access forbidden memory locations Inability of OS to grant request of application Error Response simply report error to the application Retry the operation Abort the application

9 Services Provided by the OS
Accounting collect statistics on resource usage monitor performance (e.g., response time) used for system parameter tuning to improve performance useful for anticipating future enhancements used for billing users (on multiuser systems)

10 Quiz 2-1 What is an OS? Name two OS services. Application program
Interface between user programs Resource manager Kernel Name two OS services.

11 Evolution of the Operating System
Must adapt to hardware upgrades and new types of hardware. Examples: Character vs. graphic terminals Introduction of paging hardware Must offer new services, e.g., Internet support The need to change the OS software on a regular basis modular construction with clean interfaces object oriented methodology

12 Simple Batch Systems First generation OS (mid-50s)
Main objective is to maximize utilization The user submits a job (written on card or tape) to a computer operator The computer operator places a batch of several jobs on a input device The OS, the monitor, manages the execution of each program in the batch Monitor mostly is in main memory and available for execution, Resident Monitor Monitor utilities are loaded when needed

13 The Monitor Monitor reads in jobs one at a time from the input device
Monitor places a job in the user program area A monitor instruction branches to the start of the user program Execution of user program continues until: end-of-program occurs error occurs Causes the CPU to fetch its next instruction from Monitor Monitor is like a babysitter taking care of several kids (processes) who share one or more toys (CPU, memory, …). What are some policies in this case?

14 Job Control Language (JCL)
Is the special type language to provide instructions to the monitor what compiler to use what data to use Example of job format: $JOB shows a new job $FTN loads the compiler and transfers control to it $LOAD loads the object code (in place of compiler) $RUN transfers control to user program $JOB $FTN ... FORTRAN program $LOAD $RUN Data $END

15 Job Control Language (JCL)
During user program execution: Each read (or input) instruction (in user program) causes one line of input data to be read Causes an input routine to be invoked checks for not reading a JCL line skips to the next JCL line at completion of user program

16 Simple Batch OS Alternates execution between a user program and the monitor program Relies on available hardware to effectively alternate execution from various parts of memory

17 Desirable Hardware Features
Memory protection do not allow the memory area containing the monitor to be altered by user programs Timer prevents a job from monopolizing the system an interrupt occurs when time expires

18 Desirable Hardware Features
Privileged instructions can be executed only by the monitor an interrupt occurs if a program tries these instructions Interrupts provides flexibility for relinquishing control to and regaining control from user programs

19 Transfer of Control via Interrupts

20 Main Problem with Batch Systems - System Utilization Example
The system works. However, the product cost millions of dollars, but the utilization is only single digit. Customers are not happy, managers/sales are pressured. Engineers (both system/software engineers and hardware engineers) have to do something to improve it. But HOW?

21 Multiprogrammed Batch Systems
I/O operations are exceedingly slow (compared to instruction execution) A program containing even a very small number of I/O operations will spend most of its time waiting for them Hence: poor CPU usage when only one program is present in memory

22 Multiprogrammed Batch Systems
If memory can hold several programs, then CPU can switch to another one whenever a program is awaiting for an I/O to complete This is multitasking (multiprogramming)

23 Requirements for Multiprogramming
Hardware support: I/O interrupts and (possibly) DMA in order to execute instructions while I/O device is busy Memory management several ready-to-run jobs must be kept in memory Memory protection (data and programs) Software support from the OS: Scheduling (which program is to be run next) To manage resource contention and concurrency

24 Example: three jobs are submitted
JOB JOB2 JOB3 Type of job Heavy compute Heavy I/O Heavy I/O Duration 5 min. 15 min. 10 min. Memory req. 50M 100 M 80 M Need disk? No No Yes Need terminal No Yes No Need printer? No No Yes Almost no contention for resources All 3 can run in minimum time in a multitasking environment (assuming JOB2/3 have enough CPU time to keep their I/O operations active) Total memory size is 256M bytes.

25 Advantages of Multiprogramming
Uniprogramming Multiprogramming Processor use 17% 33% Memory use 33% 67% Disk use 33% 67% Printer use 33% 67% Elapsed time 30 min. 15 min. Throughput rate 6 jobs/hr 12 jobs/hr Mean response time 18 min. 10 min. Elapsed time: - uniprogramming: job 1, job2, job3 in sequence -> = 30 - multiprogramming: job2 and job3 use different I/O devices, they can be overlapped with Job1 in an ideal case -> 15 (the longest time for all three jobs) Processor utilization: - Uni: 5 (for job1) / 30 (total) ~ 17% - Multi: 5 / 15 ~ 33% Disk/printer use: - Uni: 10 (job3) / 30 ~33% - Multi: 10/15 ~67% Memory use: - uni: (50x5 +100x15 +80x10)/(256x30) - multi” (( )x5 + (100+80)x x5) / (256x15)

26 Time Sharing Systems (TSS)
Batch multiprogramming does not support interaction with users TSS extends multiprogramming to handle multiple interactive jobs Processor’s time is shared among multiple users Multiple users simultaneously access the system through terminals

27 Time Sharing Systems (TSS)
Because of slow human reaction time, a typical user needs 2 sec of processing time per minute Then (about) 30 users should be able to share the same system without noticeable delay in the computer reaction time The file system must be protected (multiple users…)

28 Difficulties with OS Design
Improper synchronization ensure a program waiting for an I/O device receives the signal Failed mutual exclusion must permit only one program at a time to perform a transaction on a portion of data Deadlock It might happen that 2 or more programs wait endlessly after each other to perform an operation.

29 An example of deadlock Program A wants to copy from disk1 to disk2 and takes control of disk1 Program B wants to copy from disk2 to disk1 and takes control of disk2 Program A must wait that program B releases disk2 and program B must wait that program A releases disk1 Program A and B may wait forever

30 Quiz 2-2 Batch multiprogramming vs. TSS Key objective
What is multiprogramming? Multiprogramming vs. uniprogramming Main advantage? Challenges? True of False Time sharing systems (TSS) are multiprogramming Multiprogramming systems are TSS Batch multiprogramming vs. TSS Key objective Source of directives to OS Batch multiprogramming vs. TSS Key objective: processor utilization vs. response time Source of directives to OS: JCL vs. interactive commands entered at the terminal

31 Major Achievements of OS
Operating Systems are among the most complex pieces of software ever developed To meet the difficult requirements of multiprogramming and time sharing, there have been 5 major achievements by OS: Processes and threads Memory management Information protection and security Scheduling and resource management System structure

32 Process Introduced to obtain a systematic way of monitoring and controlling pgm execution A process is an executable program with: associated data (variables, buffers…) execution context: i.e., all the information that the CPU needs to execute the process content of the processor registers the OS needs to manage the process: priority of the process the event (if any) after which the process is waiting other data (that we will introduce later)

33 Process Fundamental to the structure of operating systems
A process can be defined as: a program in execution an instance of a running program the entity that can be assigned to, and executed on, a processor a unit of activity characterized by a single sequential thread of execution, a current state, and an associated set of system resources Central to the design of operating systems is the concept of process. This term was first used by the designers of Multics in the 1960s [DALE68]. It is a somewhat more general term than job. Many definitions have been given for the term process , including • A program in execution • An instance of a program running on a computer • The entity that can be assigned to and executed on a processor • A unit of activity characterized by a single sequential thread of execution, a current state, and an associated set of system resources

34 A simple implementation of processes
The process index register contains the index into the process list of the currently executing process (B) A process switch from B to A consist of storing (in memory) B’s context and loading (in CPU registers) A’s context A data structure that provides flexibility (to add new features)

35 Memory Management The OS has five principal storage management responsibilities: process isolation automatic allocation and management support of modular programming protection and access control long-term storage The needs of users can be met best by a computing environment that supports modular programming and the flexible use of data. System managers need efficient and orderly control of storage allocation. The OS, to satisfy these requirements, has five principal storage management responsibilities: • Process isolation: The OS must prevent independent processes from interfering with each other’s memory, both data and instructions. • Automatic allocation and management: Programs should be dynamically allocated across the memory hierarchy as required. Allocation should be transparent to the programmer. Thus, the programmer is relieved of concerns relating to memory limitations, and the OS can achieve efficiency by assigning memory to jobs only as needed. • Support of modular programming: Programmers should be able to define program modules, and to create, destroy, and alter the size of modules dynamically. • Protection and access control: Sharing of memory, at any level of the memory hierarchy, creates the potential for one program to address the memory space of another. This is desirable when sharing is needed by particular applications. At other times, it threatens the integrity of programs and even of the OS itself. The OS must allow portions of memory to be accessible in various ways by various users. • Long-term storage: Many application programs require means for storing information for extended periods of time, after the computer has been powered down.

36 Memory Management The key contribution is virtual memory
It allows programs to address memory from a logical point of view without regard to the amount that is physically available While a program is running only a portion of the program and data is kept in (real) memory Other portions are kept in blocks on disk the user has access to a memory space that is larger than real memory

37 Virtual Memory Concepts

38 Virtual Memory All memory references made by a program are to virtual memory which can be either a linear address space a collection of segments (variable-length blocks) The hardware (mapper) must map virtual memory address to real memory address If a reference is made to a virtual address not in memory, then (1) a portion of the content of real memory is swapped out to disk (2) the desired block of data is swapped in

39 File System Implements long-term store (often on disk)
Information stored in named objects called files a convenient unit of access and protection for OS Files (and portions) may be copied into virtual memory for manipulation by programs

40 Security and Protection
Access control to resources forbid intruders (unauthorized users) to enter the system forbid user processes to access resources which they are not authorized to

41 Scheduling and Resource Management
Differential responsiveness discriminate between different classes of jobs Fairness give equal and fair access to all processes of the same class Efficiency maximize throughput, minimize response time, and accommodate as many users as possible

42 Key Elements for Scheduling
OS maintains queues of processes waiting for some resource Short term queue of processes in memory ready to execute The dispatcher (short term scheduler) decides who goes next Long term queue of new jobs waiting to use the system OS must not admit too many processes A queue for each I/O device consisting of processes that want to use that I/O device

43 Key Elements for Scheduling (cont’d)

44 System Structure Because of it’s enormous complexity, we view the OS system as a series of levels Each level performs a related subset of functions Each level relies on the next lower level to perform more primitive functions Well defined interfaces: one level can be modified without affecting other levels This decomposes a problem into a number of more manageable sub problems

45 Characteristics of Modern Operating Systems
New design elements were introduced recently New hardware development multiprocessor machines high-speed networks faster processors and larger memory New software / application needs multimedia applications Internet and Web access Client/Server applications

46 Microkernel architecture
Only a few essential functions in the kernel primitive memory management (address space) Interprocess communication (IPC) basic scheduling Other OS services are provided by processes running in user mode (servers) device drivers, file system, virtual memory… More flexibility, extensibility, portability… A performance penalty by replacing service calls with message exchanges between process...

47 Multithreading A process is a collection of one or more threads that can run simultaneously Useful when the application consists of several tasks that do not need to be serialized Gives the programmer a greater control over the timing of application-related events All threads within the same process share the same data and resources and a part of the process’s execution context It is easier to create or destroy a thread or switch among threads (of the same process) than to do these with processes

48 Distributed Systems Distributed operating systems
Provides the illusion of a single main memory space and single secondary memory space 48

49 Symmetric Multiprocessing (SMP)
A computer with multiple processors Each processor can perform the same functions and share same main memory and I/O facilities (symmetric) The OS schedule processes/threads across all the processors (real parallelism) Existence of multiple processors is transparent to the user. Incremental growth: just add another CPU (at least in theory). Robustness: a single CPU failure does not halt the system, only the performance is reduced.

50 Example of parallel execution on SMP

51 Quiz 2-3 Name the main difference between multiprogramming and multiprocessing True or False Multiprocessing generally implies multiprogramming Multiprogramming generally implies multiprocessing

52 Quiz 2-3 Micorkernel systems:
What extra “weight” (features) do they usually remove? What are the main advantages? What is the main cost?

53 Virtual Machines and Virtualization
enables a single PC or server to simultaneously run multiple operating systems or multiple sessions of a single OS a machine can host numerous applications, including those that run on different operating systems, on a single platform host operating system can support a number of virtual machines (VM) each has the characteristics of a particular OS and, in some versions of virtualization, the characteristics of a particular hardware platform Traditionally, applications have run directly on an OS on a PC or a server. Each PC or server would run only one OS at a time. Thus, the vendor had to rewrite parts of its applications for each OS/platform they would run on. An effective strategy for dealing with this problem is known as virtualization . Virtualization technology enables a single PC or server to simultaneously run multiple operating systems or multiple sessions of a single OS. A machine with virtualization can host numerous applications, including those that run on different operating systems, on a single platform. In essence, the host operating system can support a number of virtual machines (VM) , each of which has the characteristics of a particular OS and, in some versions of virtualization, the characteristics of a particular hardware platform. The VM approach is becoming a common way for businesses and individuals to deal with legacy applications and to optimize their hardware usage by maximizing the number of kinds of applications that a single computer can handle [GEER09]. Commercial VM offerings by companies such as VMware and Microsoft are widely used, with millions of copies having been sold. In addition to their use in server environments, these VM technologies also are used in desktop environments to run multiple operating systems, typically Windows and Linux.

54 Virtual Memory Concept
The specific architecture of the VM approach varies among vendors. Figure 2.13 shows a typical arrangement. The virtual machine monitor (VMM) , or hypervisor , runs on top of (or is incorporated into) the host OS. The VMM supports VMs, which are emulated hardware devices. Each VM runs a separate OS. The VMM handles each operating system’s communications with the processor, the storage medium, and the network. To execute programs, the VMM hands off the processor control to a virtual OS on a VM. Most VMs use virtualized network connections to communicate with one another, when such communication is needed. Key to the success of this approach is that the VMM provides a layer between software environments and the underlying hardware and host OS that is programmable, transparent to the software above it, and makes efficient use of the hardware below it.

Download ppt "SYSC3001 Operating Systems and Data Bases"

Similar presentations

Ads by Google