420 likes | 625 Views
NETW 3005. System Structure and Processes. Reading. For this lecture, you should have read Chapter 2 (Sections 1-9). Last lecture. History and types of operating systems: batch systems, multiprogramming systems, time sharing systems, etc. Operating system tasks:
E N D
NETW 3005 System Structure and Processes
Reading • For this lecture, you should have read Chapter 2 (Sections 1-9). Lecture 02 - System Structure & Processes
Last lecture • History and types of operating systems: • batch systems, multiprogramming systems, time sharing systems, etc. • Operating system tasks: • process management, storage management, I/O device management, user interface. Lecture 02 - System Structure & Processes
This lecture • Hierarchical Structure in Operating Systems • System calls and interrupts • Representing processes in Operating Systems • Overview of process scheduling. Lecture 02 - System Structure & Processes
Hierarchical structure in OS • An operating system, like any complex computer system, must be carefully designed. • One central requirement is modularity. • Distinction between system programs and application programs. Lecture 02 - System Structure & Processes
Application programs System programs Kernel operations Device drivers Terminal drivers Memory manager Lecture 02 - System Structure & Processes
Application programs • Ones that ordinary users interact with: • Word-processors • Database packages • Web browsers • Compilers, editors, IDEs, etc • . . . Lecture 02 - System Structure & Processes
System programs • Provide a general-purpose lower-level function. System functions include: • file manipulation: create, delete, copy etc. • status info: date, available memory. • program loading and execution. • communication between processes. • Command interpreters (a.k.a. shell programs). The set of system programs define the user interface. Lecture 02 - System Structure & Processes
Other system functions • Not strictly part of the OS, but often packaged with it. • Programs to modify files (text editors, search, transform). • Compilers, assemblers and interpreters. The set of system programs defines the user interface. Lecture 02 - System Structure & Processes
Degrees of modularity • Different operating systems enforce different degrees of modularity. • Ideally you want to oblige all system and application programs to talk to the hardware via the kernel. Lecture 02 - System Structure & Processes
MS-DOS Application programs System programs Kernel operations Device drivers Terminal drivers Memory manager COSC 243 (Operating Systems) Lecture 02 - System Structure & Processes 11
Talking to the kernel: system calls System Program Kernel Hardware ‘‘read from the keyboard’’ ‘‘open a file’’ ‘‘write to the screen’’ Lecture 02 - System Structure & Processes
System calls • Written in the same language as kernel (typically C). • Available to Assembler and (at least) some HLLs — C, Perl, etc. • The set of system calls is termed the programmer interface to the system. Lecture 02 - System Structure & Processes
A simple system program — copy • cp file1 file2 • Open file1; Create file2. • Loop: Read from file1; Write to file2. • Close file1; Close file2. Lecture 02 - System Structure & Processes
Types of system call (1) • Process control • create, terminate, suspend, resume, abort. • File manipulation • open, close, read, write • Device manipulation • request, release, read, write. Lecture 02 - System Structure & Processes
Types of system call (2) • Housekeeping • get/set time or date • get/set attributes (process, device, file) • Communications • set up link, • send/receive message Lecture 02 - System Structure & Processes
InterruptsHow system calls are implemented • CPU responds to interrupts no matter what else it happens to be doing. • An interrupt transfers control to an appropriate module in the kernel. • A system call transfers control to the kernel by generating an interrupt (sometimes called a trap in this context). Lecture 02 - System Structure & Processes
Responding to an interrupt • Effectively a Jump to Subroutine: • current instruction address (PC) is saved • control transferred to fixed address, depending on the interrupt. • The interrupt vector is an array of locations that hold the addresses of these routines, usually held in low memory. Lecture 02 - System Structure & Processes
Implementation issues • How do we guarantee that the interrupt-handing routine won’t affect the interrupted process? • What happens if an interrupt occurs while an interrupt-handling routine is executing? Lecture 02 - System Structure & Processes
Virtual machines • System calls allow the OS to hide the low-level hardware from application programs. • In a virtual machine these system calls are executed by a program which emulates the hardware. • This hardware may, or may not be the same as the actual hardware. Lecture 02 - System Structure & Processes
processes processes processes processes kernel1 kernel2 kernel3 VM1 VM2 VM3 kernel virtual-machine implementation hardware hardware Lecture 02 - System Structure & Processes
Benefits of virtual machines • Protection: users aren’t even aware there are other users. • Good for operating systems R & D. (No down-times: just give a system programmer her own virtual machine.) • A way of solving system-compatibility problems. Lecture 02 - System Structure & Processes
Problems with virtual machines • Speed: virtual machines are slower. • Implementation is very difficult, e.g. resource allocation (particularly disc). Lecture 02 - System Structure & Processes
Java • Compiled Java code is called byte-code. • It is designed to run on the Java Virtual Machine (JVM). • Think about the command-line process of compiling and running a Java program as opposed to compiling and running a C++ program. Lecture 02 - System Structure & Processes
Processes • Recall: a process is not just a program – it is a dynamic entity. • A given program (e.g. emacs) could be executing many times on a given machine – the machine must represent each execution as a separate process. Lecture 02 - System Structure & Processes
Components of a process (1) • Code section: the program code itself • Data section: any global variables used by the program • Process stack: any local variables currently being used (subroutine parameters, return addresses, etc.) • Program counter: a pointer to some place in the program code. Lecture 02 - System Structure & Processes
Components of a process (2) • Contents of CPU registers. • Memory management information. • Accounting information: who owns the process, how long it’s been running, how much CPU time it’s used so far, etc. Lecture 02 - System Structure & Processes
Process state • The operating system keeps track of the state of each process. • A process can be in any of the following states: • new • running • waiting/blocked • ready • terminated Lecture 02 - System Structure & Processes
An Example from MacOS X oucs1046: chandley$ ps –ax Lecture 02 - System Structure & Processes
Macos X processes (1) PID TTY TIME CMD 1 ?? 1:26.15 /sbin/launchd 10 ?? 0:03.03 /usr/libexec/kextd 11 ?? 1:06.37 /usr/sbin/DirectoryService 12 ?? 0:27.57 /usr/sbin/notifyd 13 ?? 15:11.87 /usr/sbin/syslogd 14 ?? 2:08.74 /usr/sbin/configd 15 ?? 0:18.55 /usr/sbin/distnoted 16 ?? 25:23.28 /usr/sbin/mDNSResponder –launchd 20 ?? 0:03.56 /usr/sbin/securityd -i Lecture 02 - System Structure & Processes
Macos X processes (2) 24 ?? 1:24.42 /usr/sbin/ntpd -n -g -p … 25 ?? 0:02.00 /usr/sbin/cron 26 ?? 17:58.14 /usr/sbin/update 27 ?? 0:00.01 /sbin/SystemStarter 31 ?? 0:00.03 /System/Library/CoreServices/… Lecture 02 - System Structure & Processes
Macos X processes (3) • Produced 75 different processes. • Several distinct classes • Daemons – security, cron, update, etc. • Core Services – Dock, Finder, etc. • Network and communications. • Application programs – Preview, Power-Point, Word, Adobe Acrobat, etc. Lecture 02 - System Structure & Processes
Scheduling: an overview Disk Job2, Job2, Job3, Job4, … Main Memory O.S. Process 1 CPU Process 2 Process 3 Process 4 Lecture 02 - System Structure & Processes
Types of scheduler • Long-term scheduler (batch systems): decides which jobs loaded onto the disk should be moved to main memory. • Short-term scheduler (a.k.a. CPU scheduler): chooses how to allocate the CPU between the processes which are ready to execute. Lecture 02 - System Structure & Processes
Scheduling queues • The relationships between processes are represented by the O/S as queues. • Job queue: all the processes in the system (including those on disk). • Ready queue: all the processes which are ready to execute. • Device queue: all the processes waiting to use a particular device. (One queue per device.) Lecture 02 - System Structure & Processes
The Flow of Processes in an OS ready queue CPU I/O request I/O device queue I/O device queue fork I/O I/O interrupt mechanism Lecture 02 - System Structure & Processes
Process creation • A process is created (‘spawned’) by another process – we talk of parent and child processes. • When you launch an application, the terminal process spawns the application process. • Processes are able to ‘call’ other processes, just as a program can call functions. Lecture 02 - System Structure & Processes
Differences • A child process can (and often does) run concurrently with its parent. • A child process needn’t be constrained to use the resources of its parent (although it may be, and often is). Lecture 02 - System Structure & Processes
A process tree (1) root daemons init user1 user2 user3 system proc application child child Lecture 02 - System Structure & Processes
A process tree (2) • Note that users are treated as processes by the operating system. • How does that work? • Answer: users are really represented to the system as shell processes. • An important notion: the root user. Lecture 02 - System Structure & Processes
Homework • The Unix command ps displays information about processes on the system. Read the man page for ps (i.e. do “man ps”), and try out some of the options. Lecture 02 - System Structure & Processes
Next Lecture Threads and Data Sharing Chapter 4 (Sections 1-4)