Module 3: Operating
Download
Report
Transcript Module 3: Operating
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