1/21/2008CSCI 315 Operating Systems Design1 Operating System Structures Notice: The slides for this lecture have been largely based on those accompanying.

Slides:



Advertisements
Similar presentations
Operating Systems Components of OS
Advertisements

Chap 2 System Structures.
Operating-System Structures
Operating-System Structures 1. Operating-System System Components 2. Operating System Services 3. System Calls 4. System Structure 5. Virtual Machines.
Chapter 3: Operating-System Structures
3.1 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java Chapter 3: Operating-System Structures System Components Operating System.
Chapter 2: Operating-System Structures
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
1/28/2004CSCI 315 Operating Systems Design1 Operating System Structures & Processes Notice: The slides for this lecture have been largely based on those.
1/26/2004CSCI 315 Operating Systems Design1 Operating System Structures Notice: The slides for this lecture have been largely based on those accompanying.
Cs238 Lecture 3 Operating System Structures Dr. Alan R. Davis.
Common System Components
Os31 Chapter 3 Operating-System Structures. os32 Outlines System Components Operating System Services System Calls System Programs System Structure Virtual.
Silberschatz, Galvin and Gagne  Operating System Concepts Common OS Components Process Management Memory Management File Management I/O System.
Silberschatz, Galvin and Gagne  Operating System Concepts Common System Components Process Management Main Memory Management File Management.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 2: Operating-System Structures Modified from the text book.
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System.
Abhinav Kamra Computer Science, Columbia University 3.1 Operating System Concepts Silberschatz, Galvin and Gagne  2002 Chapter 3: Operating-System Structures.
System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation.
Prof. Hsien-Hsin Sean Lee
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
Silberschatz, Galvin and Gagne  Applied Operating System Concepts Chapter 3: Operating-System Structures System Components OS Services System.
Module 1.1: Operating-System Structures
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005 Operating System.
2.1 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java Chapter 2: Computer-System Structures Computer System Operation I/O Structure.
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Module 2: Computer-System Structures Computer System Operation I/O Structure.
3.1 Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure.
Chapter 2: Computer-System Structures 2.1 Computer System Operation 2.5 Hardware Protection 2.6 Network Structure.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 6 System Calls OS System.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 7 OS System Structure.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 2: Operating-System Structures.
Silberschatz and Galvin  Operating System Concepts Module 3: Operating-System Structures System Components Operating System Services System Calls.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
3.1 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java Chapter 3: Operating-System Structures System Components Operating System.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Module 3: Operating-System Structures System Components Operating System Services.
3.1 Operating System Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual.
Operating Systems Lecture November 2015© Copyright Virtual University of Pakistan 2 Agenda for Today Review of previous lecture Hardware (I/O, memory,
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
Operating Systems Structure what is the organizational principle?
1 CSE Department MAITSandeep Tayal Operating-System Structures System Components Operating System Services System Calls System Programs System Structure.
Silberschatz, Galvin and Gagne  Operating System Concepts UNIT II Operating System Services.
1 CS.217 Operating System By Ajarn..Sutapart Sappajak,METC,MSIT Chapter 3 Operating-System Structures Slide 1 Chapter 3 Operating-System Structures.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
2.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition System Programs (p73) System programs provide a convenient environment.
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System.
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Module 3: Operating-System Structures System Components Operating System Services.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
23/06/ :54:20 CSC Alliance — 1 Kimera Richard Phone: INSTITUTE OF COMPUTER SCIENCE DEPARTMENT.
System Components Operating System Services System Calls.
Operating System Structure Lecture: - Operating System Concepts Lecturer: - Pooja Sharma Computer Science Department, Punjabi University, Patiala.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
Chapter three 3.1 Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs.
Module 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System.
Chapter 3: Operating-System Structures
Computer System Structures
Module 3: Operating-System Structures
Operating System Structures
Operating System Structure
Chapter 2: System Structures
Chapter 3: Operating-System Structures
Chapter 2: Operating-System Structures
Operating Systems Lecture 3.
Introduction to Operating Systems
Outline Chapter 2 (cont) OS Design OS structure
System calls….. C-program->POSIX call
Chapter 2: Operating-System Structures
Presentation transcript:

1/21/2008CSCI 315 Operating Systems Design1 Operating System Structures Notice: The slides for this lecture have been largely based on those accompanying the seventh edition of the textbook Operating Systems Concepts with Java, by Silberschatz, Galvin, and Gagne (2007). Many, if not all, the illustrations contained in this presentation come from this source.

1/21/2008CSCI 315 Operating Systems Design2 Network Structure Local Area Networks (LAN) Wide Area Networks (WAN)

1/21/2008CSCI 315 Operating Systems Design3 Local Area Network Structure

1/21/2008CSCI 315 Operating Systems Design4 Wide Area Network Structure

1/21/2008CSCI 315 Operating Systems Design5 Operating System Services Program execution – system capability to load a program into memory and to run it. I/O operations – since user programs cannot execute I/O operations directly, the operating system must provide some means to perform I/O. File-system manipulation – program capability to read, write, create, and delete files. Communications – exchange of information between processes executing either on the same computer or on different systems tied together by a network. Implemented via shared memory or message passing. Error detection – ensure correct computing by detecting errors in the CPU and memory hardware, in I/O devices, or in user programs.

1/21/2008CSCI 315 Operating Systems Design6 Additional OS Functions Additional functions exist not for helping the user, but rather for ensuring efficient system operations: –Resource allocation – allocating resources to multiple users or multiple jobs running at the same time, –Accounting – keep track of and record which users, use how much and what kinds of computer resources for account billing or for accumulating usage statistics –Protection – ensuring that all access to system resources is controlled.

1/21/2008CSCI 315 Operating Systems Design7 Hardware Protection Dual-Mode Operation I/O Protection Memory Protection CPU Protection

1/21/2008CSCI 315 Operating Systems Design8 Dual-Mode Operation Sharing system resources requires operating system to ensure that an incorrect program or poorly behaving human cannot cause other programs to execute incorrectly. OS must provide hardware support to differentiate between at least two modes of operations: 1.User mode – execution done on behalf of a user, 2.Monitor mode (also kernel mode or system mode) – execution done on behalf of operating system.

1/21/2008CSCI 315 Operating Systems Design9 Dual-Mode Operation (Cont.) Mode bit added to computer hardware to indicate the current mode: monitor (0) or user (1). When an interrupt or fault occurs hardware switches to monitor mode. Privileged instructions can be issued only in monitor mode. monitoruser Interrupt/fault set user mode

1/21/2008CSCI 315 Operating Systems Design10 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).

1/21/2008CSCI 315 Operating Systems Design11 CPU Protection A timer interrupts the computer after a specified period to ensure the 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. Timer also used to compute the current time. Load-timer is a privileged instruction.

1/21/2008CSCI 315 Operating Systems Design12 Common OS Components Process Management Main Memory Management File Management I/O System Management Secondary-Storage Management Networking Protection System Command-Interpreter System

1/21/2008CSCI 315 Operating Systems Design13 Command-Interpreter System 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.

1/21/2008CSCI 315 Operating Systems Design14 Command-Interpreter System The program that reads and interprets control statements is called variously: –command-line interpreter, or –shell (in UNIX). Its function is to read in and execute the next command statement.

1/21/2008CSCI 315 Operating Systems Design15 General-System Architecture Given the I/O instructions are privileged, how does the user program perform I/O? System call – the method used by a process to request action by the operating system: –Usually takes the form of a trap to a specific location in the interrupt vector, –Control passes through the interrupt vector to a service routine in the OS, and the mode bit is set to monitor mode, –The monitor verifies that the parameters are correct and legal, executes the request, and returns control to the instruction following the system call.

1/21/2008CSCI 315 Operating Systems Design16 System Calls System calls provide the interface between a running program and the operating system: –Generally available as assembly-language instructions, –Languages defined to replace assembly language for systems programming allow system calls to be made directly (e.g., C, C++). Three general methods are used to pass parameters between a running program and the operating system: –Pass parameters in registers, –Push (store) the parameters onto the stack by the program, and pop off the stack by operating system, –Store the parameters in a table in memory, and the table address is passed as a parameter in a register.

1/21/2008CSCI 315 Operating Systems Design17 Types of System Calls Process control File management Device management Information maintenance Communications

1/21/2008CSCI 315 Operating Systems Design18 System Programs System programs provide a convenient environment for program development and execution. They can be divided into: –File manipulation –Status information –File modification –Programming language support –Program loading and execution –Communications –Application programs Most users’ view of the operation system is defined by system programs, not the actual system calls.

1/21/2008CSCI 315 Operating Systems Design19 Communication Models Message Passing Shared Memory

1/21/2008CSCI 315 Operating Systems Design20 MS-DOS System Structure MS-DOS – written to provide the most functionality in the least space: –Not divided into modules, –Although MS-DOS has some structure, its interfaces and levels of functionality are not well separated.

1/21/2008CSCI 315 Operating Systems Design21 MS-DOS Execution At System Start-up Running a Program

1/21/2008CSCI 315 Operating Systems Design22 MS-DOS Layer Structure

1/21/2008CSCI 315 Operating Systems Design23 UNIX System Structure UNIX – limited by hardware functionality, the original UNIX operating system had limited structuring. The UNIX OS consists of two separable parts: –Systems programs, and –The kernel: 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.

1/21/2008CSCI 315 Operating Systems Design24 UNIX System Structure

1/21/2008CSCI 315 Operating Systems Design25 Layered Approach The operating system is divided into a number of layers (levels), each built on top of lower layers. The bottom layer (layer 0), is the hardware; the highest (layer N) is the user interface. With modularity, layers are selected such that each uses functions (operations) and services of only lower-level layers.

1/21/2008CSCI 315 Operating Systems Design26 An Operating System Layer

1/21/2008CSCI 315 Operating Systems Design27 Microkernel System Structure Moves as much from the kernel into “user” space. Communication takes place between user modules using message passing. Benefits: –Easier to extend a microkernel, –Easier to port the operating system to new architectures, –More reliable (less code is running in kernel mode), –More secure. Detriments: –Performance overhead of user space to kernel space communication.

1/21/2008CSCI 315 Operating Systems Design28 Modules Most modern operating systems implement kernel modules: –Uses object-oriented approach, –Each core component is separate, –Each talks to the others over known interfaces, and –Each is loadable as needed within the kernel. Overall, similar to layers but with more flexibility.

1/21/2008CSCI 315 Operating Systems Design29 Virtual Machines A virtual machine takes the layered approach to its logical conclusion. It treats hardware and the operating system kernel as though they were all hardware. A virtual machine provides an interface identical to the underlying bare hardware. The operating system creates the illusion of multiple processes, each executing on its own processor with its own (virtual) memory.

1/21/2008CSCI 315 Operating Systems Design30 Virtual Machines (Cont.) 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.

1/21/2008CSCI 315 Operating Systems Design31 System Models Non-virtual Machine Virtual Machine

1/21/2008CSCI 315 Operating Systems Design32 [Ad|Disad]vantages of 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.

1/21/2008CSCI 315 Operating Systems Design33 Java Virtual Machine Compiled Java programs are platform-neutral bytecodes executed by a Java Virtual Machine (JVM). JVM consists of: – Class loader, –Class verifier, –Runtime interpreter. Just-In-Time (JIT) compilers increase performance.

1/21/2008CSCI 315 Operating Systems Design34 The Java Virtual Machine

1/21/2008CSCI 315 Operating Systems Design35 The Java Platform

1/21/2008CSCI 315 Operating Systems Design36 Java.class File on Cross Platforms

1/21/2008CSCI 315 Operating Systems Design37 Java Development Environment

1/21/2008CSCI 315 Operating Systems Design38 Operating System Design Goals User goals – operating system should be convenient to use, easy to learn, reliable, secure, and fast. System goals – operating system should be easy to design, implement, and maintain, as well as flexible, reliable, error- free, and efficient.

1/21/2008CSCI 315 Operating Systems Design39 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, and –Is easier to understand and debug. An operating system is far easier to port (move to some other hardware) if it is written in a high-level language.