1 / 42

NETW 3005

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:

arlo
Download Presentation

NETW 3005

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. NETW 3005 System Structure and Processes

  2. Reading • For this lecture, you should have read Chapter 2 (Sections 1-9). Lecture 02 - System Structure & Processes

  3. 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

  4. 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

  5. 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

  6. Application programs System programs Kernel operations Device drivers Terminal drivers Memory manager Lecture 02 - System Structure & Processes

  7. Application programs • Ones that ordinary users interact with: • Word-processors • Database packages • Web browsers • Compilers, editors, IDEs, etc • . . . Lecture 02 - System Structure & Processes

  8. 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

  9. 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

  10. 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

  11. MS-DOS Application programs System programs Kernel operations Device drivers Terminal drivers Memory manager COSC 243 (Operating Systems) Lecture 02 - System Structure & Processes 11

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. processes processes processes processes kernel1 kernel2 kernel3 VM1 VM2 VM3 kernel virtual-machine implementation hardware hardware Lecture 02 - System Structure & Processes

  22. 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

  23. Problems with virtual machines • Speed: virtual machines are slower. • Implementation is very difficult, e.g. resource allocation (particularly disc). Lecture 02 - System Structure & Processes

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. An Example from MacOS X oucs1046: chandley$ ps –ax Lecture 02 - System Structure & Processes

  30. 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

  31. 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

  32. 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

  33. 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

  34. 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

  35. 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

  36. 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

  37. 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

  38. 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

  39. A process tree (1) root daemons init user1 user2 user3 system proc application child child Lecture 02 - System Structure & Processes

  40. 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

  41. 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

  42. Next Lecture Threads and Data Sharing Chapter 4 (Sections 1-4)

More Related