Lecture 6

advertisement
Operating Systems
Lecture 6
System Calls
OS System Structure
Operating System Concepts
3.1
Silberschatz, Galvin and Gagne 2002
Modified for CSCI 399, Royden, 2005
System Calls
 System calls provide the interface between a running
program and the operating system.
 Generally available as assembly-language
instructions.
 Languages defined to replace assembly language for
systems programming allow system calls to be made
directly (e.g., C, C++)
Operating System Concepts
3.2
Silberschatz, Galvin and Gagne 2002
Modified for CSCI 399, Royden, 2005
System Calls are Used Frequently
 A single program may make numerous system calls. For
example, a program to read from one file and write to
another would need system calls for the following:
 Prompt the user to enter file names
 Read in filenames
 Open input file
 Read from input file
 Open/create output file
 Write output to file
 Close input and output files
 The system must be able to signal and handle errors that
occur.
Operating System Concepts
3.3
Silberschatz, Galvin and Gagne 2002
Modified for CSCI 399, Royden, 2005
Passing Parameters
 Three general methods are used to pass
parameters between a running program and the
operating system.
 Pass parameters in registers.
 Store the parameters in a table in memory,
and the table address is passed as a
parameter in a register.
 Push (store) the parameters onto the stack
by the program, and pop off the stack by
operating system.
Operating System Concepts
3.4
Silberschatz, Galvin and Gagne 2002
Modified for CSCI 399, Royden, 2005
Passing of Parameters As A Table
Operating System Concepts
3.5
Silberschatz, Galvin and Gagne 2002
Modified for CSCI 399, Royden, 2005
Types of System Calls
 Process control
 create (fork), execute (exec), wait, end (exit), abort (kill), etc.
 File management
 creat, delete, open, close, read, write, cp, rm, mkdir, rmdir, ls,
cat, more, grep, etc. get/set file attributes
 Device management
 read, write, attach (mount), detach (unmount), get/set device
attributes
 Information maintenance
 get/set time or date, get/set file attributes (chmod, chown,
chgrp), get/set process/device attributes (du, ps, etc)
 Communications
 send, receive, connect, accept, get/set status information,
gethostid/sethostid, gethostbyname, etc.
Operating System Concepts
3.6
Silberschatz, Galvin and Gagne 2002
Modified for CSCI 399, Royden, 2005
Process Control
 A process executing one program may want to load and execute





another program (e.g. the shell loads and executes programs). The
following are important considerations:
Where does control return when the new process is finished?
 If return control to existing program, must save memory image
of existing program before loading new process.
 If both programs are to run concurrently, the new process is
added to the multiprogramming set of processes.
Controlling execution of the process:
 get/set process attributes, terminate process
Waiting for the process to finish
 wait event, signal event
Terminating the process
 Normal (exit) or abnormal (abort) termination.
There are multiple ways of implementing process control.
Operating System Concepts
3.7
Silberschatz, Galvin and Gagne 2002
Modified for CSCI 399, Royden, 2005
MS-DOS Execution
MS-DOS runs the
command interpreter on
startup.
It loads a new program
into memory, writing over
part of the interpreter.
When the program
terminates, the part of the
interpreter not
overwritten begins
execution. It loads the
rest of the interpreter
from disk.
Operating System Concepts
At System Start-up
3.8
Running a Program
Silberschatz, Galvin and Gagne 2002
Modified for CSCI 399, Royden, 2005
UNIX Running Multiple Programs
UNIX runs the shell on startup.
To start a new process, it uses the fork
command to create the process and exec to
execute it.
If the process is in the foreground, the shell
waits for the process to finish.
If the process is in the background, the user
can continue to issue commands while the
process is running.
When the process is finished, it executes an
exit system call.
Operating System Concepts
3.9
Silberschatz, Galvin and Gagne 2002
Modified for CSCI 399, Royden, 2005
Message Passing
 Processes use message passing to send messages to
one another.
 First, the connection must be opened.
 The name of the communicator must be known (hos tname or
host id, process name or process id). Use get process id or get
host id.
 open connection, close connection
 recipient uses accept connection
 The initiator is the client. The recipient of the request is the
server.
 Exchange of information made with write message
system calls.
Operating System Concepts
3.10
Silberschatz, Galvin and Gagne 2002
Modified for CSCI 399, Royden, 2005
Shared Memory
 In memory sharing, processes communicate by writing




and reading to the same memory addresses.
Processes use map memory system calls to access
memory owned by other processes.
Both processes must agree to remove O.S. memory
restriction so that they can access the same region of
memory.
The processes are responsible for the form and
location of the data.
The processes are responsible for making sure that
they are not writing to the same memory area
simultaneously.
Operating System Concepts
3.11
Silberschatz, Galvin and Gagne 2002
Modified for CSCI 399, Royden, 2005
Communication Models
 Communication may take place using either message
passing or shared memory.
Msg Passing
Operating System Concepts
Shared Memory
3.12
Silberschatz, Galvin and Gagne 2002
Modified for CSCI 399, Royden, 2005
System Programs
 System programs provide a convenient environment
for program development and execution. The can be
divided into:
 File manipulation
 Status information
 File modification
 Programming language support
 Program loading and execution
 Communications
 Application programs
 Most users’ view of the operation system is defined
by system programs, not the actual system calls.
Operating System Concepts
3.13
Silberschatz, Galvin and Gagne 2002
Modified for CSCI 399, Royden, 2005
MS-DOS System Structure
 MS-DOS – written to provide the most functionality in
the least space
 not divided into modules
 Although MS-DOS has some structure, its
interfaces and levels of functionality are not well
separated
Operating System Concepts
3.14
Silberschatz, Galvin and Gagne 2002
Modified for CSCI 399, Royden, 2005
MS-DOS Layer Structure
Operating System Concepts
3.15
Silberschatz, Galvin and Gagne 2002
Modified for CSCI 399, Royden, 2005
UNIX System Structure
 UNIX – limited by hardware functionality, the
original UNIX operating system had limited
structuring. The UNIX OS consists of two
separable parts.
 Systems programs
 The kernel
 Consists of 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.
Operating System Concepts
3.16
Silberschatz, Galvin and Gagne 2002
Modified for CSCI 399, Royden, 2005
UNIX System Structure
Operating System Concepts
3.17
Silberschatz, Galvin and Gagne 2002
Modified for CSCI 399, Royden, 2005
Layered Approach
 The operating system is divided into a number of
layers (levels), each built on top of lower layers. The
bottom layer (layer 0), is the hardware; the highest
(layer N) is the user interface.
 With modularity, layers are selected such that each
uses functions (operations) and services of only
lower-level layers.
 Advantage: Modularity makes it easy to modify and
extend.
 Disadvantage: Some functions may depend on one
another, making a strict hierarchy difficult to
implement.
Operating System Concepts
3.18
Silberschatz, Galvin and Gagne 2002
Modified for CSCI 399, Royden, 2005
An Operating System Layer
Operating System Concepts
3.19
Silberschatz, Galvin and Gagne 2002
Modified for CSCI 399, Royden, 2005
OS/2 Layer Structure
Operating System Concepts
3.20
Silberschatz, Galvin and Gagne 2002
Modified for CSCI 399, Royden, 2005
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
Example: Mac OS X is based on the Mach micro kernel.
Operating System Concepts
3.21
Silberschatz, Galvin and Gagne 2002
Modified for CSCI 399, Royden, 2005
Download