system programs
Download
Report
Transcript system programs
NETW 3005
Reading
• For this lecture, you should have read
Chapter 2 (Sections 1-9).
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
2
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.
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
3
This lecture
• Hierarchical Structure in Operating
Systems
• System calls and interrupts
• Representing processes in Operating
Systems
• Overview of process scheduling.
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
4
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.
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
5
Application programs
System programs
Kernel operations
Device
drivers
NETW3005 (Operating Systems)
Terminal
drivers
Memory
manager
Lecture 02 - System Structure & Processes
6
Application programs
• Ones that ordinary users interact with:
– Word-processors
– Database packages
– Web browsers
– Compilers, editors, IDEs, etc
– ...
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
7
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.
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
8
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.
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
9
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.
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
10
MS-DOS
Application programs
System programs
Kernel operations
Device
drivers
NETW3005
COSC 243 (Operating
(Operating Systems)
Systems)
Terminal
drivers
Memory
manager
Lecture 02 - System Structure & Processes
11
Talking to the kernel: system calls
System Program
‘‘read from the keyboard’’
‘‘open a file’’
‘‘write to the screen’’
Kernel
Hardware
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
12
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.
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
13
A simple system program — copy
• cp file1 file2
• Open file1; Create file2.
• Loop: Read from file1; Write to file2.
• Close file1; Close file2.
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
14
Types of system call (1)
• Process control
– create, terminate, suspend, resume, abort.
• File manipulation
– open, close, read, write
• Device manipulation
– request, release, read, write.
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
15
Types of system call (2)
• Housekeeping
– get/set time or date
– get/set attributes (process, device, file)
• Communications
– set up link,
– send/receive message
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
16
Interrupts
How 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).
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
17
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.
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
18
Implementation issues
• How do we guarantee that the interrupthanding routine won’t affect the
interrupted process?
• What happens if an interrupt occurs
while an interrupt-handling routine is
executing?
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
19
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.
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
20
processes
processes processes processes
kernel
hardware
kernel1
kernel2
kernel3
VM1
VM2
VM3
virtual-machine implementation
hardware
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
21
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.
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
22
Problems with virtual machines
• Speed: virtual machines are slower.
• Implementation is very difficult, e.g.
resource allocation (particularly disc).
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
23
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.
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
24
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.
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
25
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.
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
26
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.
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
27
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
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
28
An Example from MacOS X
oucs1046: chandley$ ps –ax
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
29
Macos X processes (1)
PID
1
10
11
12
13
14
15
16
20
TTY
TIME CMD
?? 1:26.15 /sbin/launchd
?? 0:03.03 /usr/libexec/kextd
?? 1:06.37 /usr/sbin/DirectoryService
?? 0:27.57 /usr/sbin/notifyd
?? 15:11.87 /usr/sbin/syslogd
?? 2:08.74 /usr/sbin/configd
?? 0:18.55 /usr/sbin/distnoted
?? 25:23.28 /usr/sbin/mDNSResponder –launchd
??
0:03.56 /usr/sbin/securityd -i
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
30
Macos X processes (2)
24
25
26
27
31
?? 1:24.42 /usr/sbin/ntpd -n -g -p …
?? 0:02.00 /usr/sbin/cron
?? 17:58.14 /usr/sbin/update
?? 0:00.01 /sbin/SystemStarter
?? 0:00.03 /System/Library/CoreServices/…
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
31
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, PowerPoint, Word, Adobe Acrobat, etc.
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
32
Scheduling: an overview
Disk Job2, Job2, Job3, Job4, …
Main Memory
O.S.
CPU
Process 1
Process 2
Process 3
Process 4
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
33
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.
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
34
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.)
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
35
The Flow of Processes in an OS
ready queue
I/O
I/O device queue
I/O
I/O device queue
CPU
I/O
request
fork
interrupt mechanism
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
36
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.
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
37
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).
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
38
A process tree (1)
root
daemons
user1
init
user2
system proc
application
child
NETW3005 (Operating Systems)
user3
child
Lecture 02 - System Structure & Processes
39
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.
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
40
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.
NETW3005 (Operating Systems)
Lecture 02 - System Structure & Processes
41
Next Lecture
Threads and Data Sharing
Chapter 4 (Sections 1-4)