* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Module 3: Operating
Mobile operating system wikipedia , lookup
Berkeley Software Distribution wikipedia , lookup
Library (computing) wikipedia , lookup
Security-focused operating system wikipedia , lookup
Plan 9 from Bell Labs wikipedia , lookup
Copland (operating system) wikipedia , lookup
Distributed operating system wikipedia , lookup
Burroughs MCP wikipedia , lookup
Spring (operating system) wikipedia , lookup
Operating Systems Lecture 6 System Calls OS System Structure Operating System Concepts 3.1 Silberschatz, Galvin and Gagne 2002 Modified for CSCI 399, Royden, 2005 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++) Operating System Concepts 3.2 Silberschatz, Galvin and Gagne 2002 Modified for CSCI 399, Royden, 2005 System Calls are Used Frequently  A single program may make numerous system calls. For example, a program to read from one file and write to another would need system calls for the following:  Prompt the user to enter file names  Read in filenames  Open input file  Read from input file  Open/create output file  Write output to file  Close input and output files  The system must be able to signal and handle errors that occur. Operating System Concepts 3.3 Silberschatz, Galvin and Gagne 2002 Modified for CSCI 399, Royden, 2005 Passing Parameters  Three general methods are used to pass parameters between a running program and the operating system.  Pass parameters in registers.  Store the parameters in a table in memory, and the table address is passed as a parameter in a register.  Push (store) the parameters onto the stack by the program, and pop off the stack by operating system. Operating System Concepts 3.4 Silberschatz, Galvin and Gagne 2002 Modified for CSCI 399, Royden, 2005 Passing of Parameters As A Table Operating System Concepts 3.5 Silberschatz, Galvin and Gagne 2002 Modified for CSCI 399, Royden, 2005 Types of System Calls  Process control  create (fork), execute (exec), wait, end (exit), abort (kill), etc.  File management  creat, delete, open, close, read, write, cp, rm, mkdir, rmdir, ls, cat, more, grep, etc. get/set file attributes  Device management  read, write, attach (mount), detach (unmount), get/set device attributes  Information maintenance  get/set time or date, get/set file attributes (chmod, chown, chgrp), get/set process/device attributes (du, ps, etc)  Communications  send, receive, connect, accept, get/set status information, gethostid/sethostid, gethostbyname, etc. Operating System Concepts 3.6 Silberschatz, Galvin and Gagne 2002 Modified for CSCI 399, Royden, 2005 Process Control  A process executing one program may want to load and execute      another program (e.g. the shell loads and executes programs). The following are important considerations: Where does control return when the new process is finished?  If return control to existing program, must save memory image of existing program before loading new process.  If both programs are to run concurrently, the new process is added to the multiprogramming set of processes. Controlling execution of the process:  get/set process attributes, terminate process Waiting for the process to finish  wait event, signal event Terminating the process  Normal (exit) or abnormal (abort) termination. There are multiple ways of implementing process control. Operating System Concepts 3.7 Silberschatz, Galvin and Gagne 2002 Modified for CSCI 399, Royden, 2005 MS-DOS Execution MS-DOS runs the command interpreter on startup. It loads a new program into memory, writing over part of the interpreter. When the program terminates, the part of the interpreter not overwritten begins execution. It loads the rest of the interpreter from disk. Operating System Concepts At System Start-up 3.8 Running a Program Silberschatz, Galvin and Gagne 2002 Modified for CSCI 399, Royden, 2005 UNIX Running Multiple Programs UNIX runs the shell on startup. To start a new process, it uses the fork command to create the process and exec to execute it. If the process is in the foreground, the shell waits for the process to finish. If the process is in the background, the user can continue to issue commands while the process is running. When the process is finished, it executes an exit system call. Operating System Concepts 3.9 Silberschatz, Galvin and Gagne 2002 Modified for CSCI 399, Royden, 2005 Message Passing  Processes use message passing to send messages to one another.  First, the connection must be opened.  The name of the communicator must be known (hos tname or host id, process name or process id). Use get process id or get host id.  open connection, close connection  recipient uses accept connection  The initiator is the client. The recipient of the request is the server.  Exchange of information made with write message system calls. Operating System Concepts 3.10 Silberschatz, Galvin and Gagne 2002 Modified for CSCI 399, Royden, 2005 Shared Memory  In memory sharing, processes communicate by writing     and reading to the same memory addresses. Processes use map memory system calls to access memory owned by other processes. Both processes must agree to remove O.S. memory restriction so that they can access the same region of memory. The processes are responsible for the form and location of the data. The processes are responsible for making sure that they are not writing to the same memory area simultaneously. Operating System Concepts 3.11 Silberschatz, Galvin and Gagne 2002 Modified for CSCI 399, Royden, 2005 Communication Models  Communication may take place using either message passing or shared memory. Msg Passing Operating System Concepts Shared Memory 3.12 Silberschatz, Galvin and Gagne 2002 Modified for CSCI 399, Royden, 2005 System Programs  System programs provide a convenient environment for program development and execution. The 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. Operating System Concepts 3.13 Silberschatz, Galvin and Gagne 2002 Modified for CSCI 399, Royden, 2005 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 Operating System Concepts 3.14 Silberschatz, Galvin and Gagne 2002 Modified for CSCI 399, Royden, 2005 MS-DOS Layer Structure Operating System Concepts 3.15 Silberschatz, Galvin and Gagne 2002 Modified for CSCI 399, Royden, 2005 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  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. Operating System Concepts 3.16 Silberschatz, Galvin and Gagne 2002 Modified for CSCI 399, Royden, 2005 UNIX System Structure Operating System Concepts 3.17 Silberschatz, Galvin and Gagne 2002 Modified for CSCI 399, Royden, 2005 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.  Advantage: Modularity makes it easy to modify and extend.  Disadvantage: Some functions may depend on one another, making a strict hierarchy difficult to implement. Operating System Concepts 3.18 Silberschatz, Galvin and Gagne 2002 Modified for CSCI 399, Royden, 2005 An Operating System Layer Operating System Concepts 3.19 Silberschatz, Galvin and Gagne 2002 Modified for CSCI 399, Royden, 2005 OS/2 Layer Structure Operating System Concepts 3.20 Silberschatz, Galvin and Gagne 2002 Modified for CSCI 399, Royden, 2005 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 Example: Mac OS X is based on the Mach micro kernel. Operating System Concepts 3.21 Silberschatz, Galvin and Gagne 2002 Modified for CSCI 399, Royden, 2005