Title: NETW 3005
1NETW 3005
System Structure and Processes
2Reading
- For this lecture, you should have read Chapter 2
(Sections 1-9).
3Last 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.
4This lecture
- Hierarchical Structure in Operating Systems
- System calls and interrupts
- Representing processes in Operating Systems
- Overview of process scheduling.
5Hierarchical 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.
6(No Transcript)
7Application programs
- Ones that ordinary users interact with
- Word-processors
- Database packages
- Web browsers
- Compilers, editors, IDEs, etc
- . . .
8System 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 de?ne the user interface.
9Other 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.
10Degrees 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.
11MS-DOS
Application programs
System programs
Kernel operations
Device drivers
Terminal drivers
Memory manager
COSC 243 (Operating Systems)
11
12Talking to the kernel system calls
13System 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.
14A simple system program copy
- cp file1 file2
- Open file1 Create file2.
- Loop Read from file1 Write to file2.
- Close file1 Close file2.
15Types of system call (1)
- Process control
- create, terminate, suspend, resume, abort.
- File manipulation
- open, close, read, write
- Device manipulation
- request, release, read, write.
16Types of system call (2)
- Housekeeping
- get/set time or date
- get/set attributes (process, device, file)
- Communications
- set up link,
- send/receive message
17InterruptsHow 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).
18Responding 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.
19Implementation issues
- How do we guarantee that the interrupt-handing
routine wont affect the interrupted process? - What happens if an interrupt occurs while an
interrupt-handling routine is executing?
20Virtual 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.
21processes
kernel
hardware
22Benefits of virtual machines
- Protection users arent 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.
23Problems with virtual machines
- Speed virtual machines are slower.
- Implementation is very difficult, e.g. resource
allocation (particularly disc).
24Java
- 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.
25Processes
- 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.
26Components 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.
27Components of a process (2)
- Contents of CPU registers.
- Memory management information.
- Accounting information who owns the process, how
long its been running, how much CPU time its
used so far, etc.
28Process 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
29An Example from MacOS X
30Macos X processes (1)
PID TTY TIME CMD 1 ?? 126.15
/sbin/launchd 10 ?? 003.03 /usr/libexec/kextd 1
1 ?? 106.37 /usr/sbin/DirectoryService 12 ??
027.57 /usr/sbin/notifyd 13 ?? 1511.87
/usr/sbin/syslogd 14 ?? 208.74
/usr/sbin/configd 15 ?? 018.55
/usr/sbin/distnoted 16 ?? 2523.28
/usr/sbin/mDNSResponder launchd 20 ?? 003.56
/usr/sbin/securityd -i
31Macos X processes (2)
24 ?? 124.42 /usr/sbin/ntpd -n -g -p 25 ??
002.00 /usr/sbin/cron 26 ?? 1758.14
/usr/sbin/update 27 ?? 000.01
/sbin/SystemStarter 31 ?? 000.03
/System/Library/CoreServices/
32Macos 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.
33Scheduling an overview
Disk
Job2, Job2, Job3, Job4,
34Types 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.
35Scheduling 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.)
36The Flow of Processes in an OS
ready queue
I/O request
fork
interrupt mechanism
37Process 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.
38Differences
- A child process can (and often does) run
concurrently with its parent. - A child process neednt be constrained to use the
resources of its parent (although it may be, and
often is).
39A process tree (1)
root
40A 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.
41Homework
- 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.
42Next Lecture
Threads and Data Sharing Chapter 4 (Sections 1-4)