Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 4: Operating System Structures

Similar presentations


Presentation on theme: "Lecture 4: Operating System Structures"— Presentation transcript:

1 Lecture 4: Operating System Structures
Joe McCarthy CSS 430: Operating Systems - OS Structures

2 CSS 430: Operating Systems - OS Structures
Outline More examples fork, pipe, dup2 Chapter 2: Operating Systems Structures Next time Chapter 3: Processes CSS 430: Operating Systems - OS Structures

3 CSS 430: Operating Systems - OS Structures
More examples C++ programs using fork(), pipe(), dup2() testpipe[0-2].cpp Send “hello” through pipe to STDOUT Differences: hardcoded string vs. arg, write() vs execlp() pipedup2[a-d].cpp Using system calls to do ‘ps –A | tr a-z A-Z’ Differences Parent vs. child calling ps vs. tr Using read() & write() vs. execlp() for tr Linked from prog1b assignment page: CSS 430: Operating Systems - OS Structures

4 Chapter 2: OS Structures
Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System Design and Implementation Operating System Structure Virtual Machines Operating System Debugging Operating System Generation System Boot Material derived, in part, from Operating Systems Concepts with Java, 8th Ed. © 2009 Silberschatz, Galvin & Gagne CSS 430: Operating Systems - OS Structures

5 A View of Operating System Services
CSS 430: Operating Systems - OS Structures

6 CSS 430: Operating Systems - OS Structures
System Calls Programming interface to the services provided by the OS Typically written in a high-level language (C or C++) Mostly accessed by programs via a high-level Application Program Interface (API) rather than direct system call use 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) Why use APIs rather than system calls? (Note that the system-call names used throughout this text are generic) CSS 430: Operating Systems - OS Structures

7 Example of System Calls
System call sequence to copy the contents of one file to another file CSS 430: Operating Systems - OS Structures

8 Example of System Calls
System call sequence to copy the contents of one file to another file CSS 430: Operating Systems - OS Structures

9 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 CSS 430: Operating Systems - OS Structures

10 API – System Call – OS Relationship
CSS 430: Operating Systems - OS Structures

11 Standard C Library Example
printf() library call  write() system call CSS 430: Operating Systems - OS Structures

12 System Call Parameter Passing
Often, more information is required than simply identity of desired system call Exact type & amount of information vary according to OS & call Three general methods used to pass parameters to the OS CSS 430: Operating Systems - OS Structures

13 System Call Parameter Passing
Often, more information is required than simply identity of desired system call Exact type & amount of information vary according to OS & 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 CSS 430: Operating Systems - OS Structures

14 Parameter Passing via Table
CSS 430: Operating Systems - OS Structures

15 CSS 430: Operating Systems - OS Structures
Types of System Calls Process control File management Device management Status Information Communications Protection CSS 430: Operating Systems - OS Structures

16 CSS 430: Operating Systems - OS Structures
Process Control CSS 430: Operating Systems - OS Structures

17 CSS 430: Operating Systems - OS Structures
Process Control End, abort Load, execute Create process, terminate process Get process attributes, set process attributes Wait for time Wait for event, signal event Allocate memory, free memory CSS 430: Operating Systems - OS Structures

18 CSS 430: Operating Systems - OS Structures
File Management CSS 430: Operating Systems - OS Structures

19 CSS 430: Operating Systems - OS Structures
File Management Create file, delete file Open, close Read, write, reposition Get file attributes, set file attributes CSS 430: Operating Systems - OS Structures

20 CSS 430: Operating Systems - OS Structures
Device Management CSS 430: Operating Systems - OS Structures

21 CSS 430: Operating Systems - OS Structures
Device Management Request device, release device Read, write, reposition Get device attributes, set device attributes Logically attach (mount) or detach (unmount) devices CSS 430: Operating Systems - OS Structures

22 Information Maintenance
CSS 430: Operating Systems - OS Structures

23 Information Maintenance
Get time or date, set time or date Get system data, set system data Get process, file or device attributes Set process, file or device attributes CSS 430: Operating Systems - OS Structures

24 CSS 430: Operating Systems - OS Structures
Communications CSS 430: Operating Systems - OS Structures

25 CSS 430: Operating Systems - OS Structures
Communications Create, delete communication connection Send, receive messages Transfer status information Attach or detach remote devices CSS 430: Operating Systems - OS Structures

26 Windows & Unix System Calls
CSS 430: Operating Systems - OS Structures

27 CSS 430: Operating Systems - OS Structures
MS-DOS execution (a) At system startup (b) running a program CSS 430: Operating Systems - OS Structures

28 FreeBSD Running Multiple Programs
CSS 430: Operating Systems - OS Structures

29 OS Design & Implementation
Important distinction: Policy: What will be done? Mechanism: How to do it? Benefits: Maximum flexibility Policy changes need not entail mechanism changes & vice versa CSS 430: Operating Systems - OS Structures

30 CSS 430: Operating Systems - OS Structures
Simple Structure MS-DOS Goal: most functionality in the least space Not divided into modules Interfaces & levels of functionality not well separated CSS 430: Operating Systems - OS Structures

31 CSS 430: Operating Systems - OS Structures
Layered Approach Modularity: Each layer (level) uses functions & services only from layer(s) directly below Provides functions & services only to layer(s) directly above CSS 430: Operating Systems - OS Structures

32 Layered Approach to Networking
CSS 430: Operating Systems - OS Structures

33 Traditional UNIX System Structure
CSS 430: Operating Systems - OS Structures

34 CSS 430: Operating Systems - OS Structures
UNIX Two components Systems programs ls, rm, cp, mv, ps, grep, wc, … The kernel 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 CSS 430: Operating Systems - OS Structures

35 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 CSS 430: Operating Systems - OS Structures

36 CSS 430: Operating Systems - OS Structures
Mac OS X Structure CSS 430: Operating Systems - OS Structures

37 CSS 430: Operating Systems - OS Structures
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 Each is loadable as needed within the kernel Overall, similar to layers but with more flexible CSS 430: Operating Systems - OS Structures

38 Solaris Modular Approach
CSS 430: Operating Systems - OS Structures

39 CSS 430: Operating Systems - OS Structures
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 host creates the illusion that a process has its own processor and (virtual memory). Each guest is provided with a (virtual) copy of underlying computer. CSS 430: Operating Systems - OS Structures

40 CSS 430: Operating Systems - OS Structures
Virtual Machines (a) Nonvirtual machine (b) virtual machine CSS 430: Operating Systems - OS Structures

41 Solaris 10 with Two Containers
CSS 430: Operating Systems - OS Structures

42 CSS 430: Operating Systems - OS Structures
VMware Architecture CSS 430: Operating Systems - OS Structures

43 CSS 430: Operating Systems - OS Structures
Java Java consists of: Programming language specification Application programming interface (API) Virtual machine specification CSS 430: Operating Systems - OS Structures

44 The Java Development Kit
CSS 430: Operating Systems - OS Structures

45 CSS 430: Operating Systems - OS Structures
Cloud Computing CSS 430: Operating Systems - OS Structures

46 CSS 430: Operating Systems - OS Structures
CSS 430: Operating Systems - OS Structures

47 CSS 430: Operating Systems - OS Structures
Amazon Web Services CSS 430: Operating Systems - OS Structures

48 CSS 430: Operating Systems - OS Structures

49 CSS 430: Operating Systems - OS Structures

50 The Cost of Convenience
CSS 430: Operating Systems - OS Structures

51 CSS 430: Operating Systems - OS Structures
For next time Readings Chapters 3: Processes CSS 430: Operating Systems - OS Structures


Download ppt "Lecture 4: Operating System Structures"

Similar presentations


Ads by Google