Chapter 2
Chapter 2
Structures
1
Chapter 2: Operating-System
Structures
• Operating System Services
• System Calls
• Types of System Calls
• Operating System Structure
2
Operating System Services
• Operating systems provide an environment for execution of
programs and services to programs and users
• One set of operating-system services provides functions that
are helpful to the user:
– User interface - Almost all operating systems have a user
interface (UI).
• Varies between Command-Line (CLI), Graphics User
Interface (GUI), Batch interface
– Program execution - The system must be able to load a
program into memory and to run that program, end
execution, either normally or abnormally (indicating error)
– I/O operations - A running program may require I/O,
which may involve a file or an I/O device
3
A View of Operating System Services
4
Operating System Services (Cont.)
• One set of operating-system services provides functions that are helpful to
the user (Cont.):
– File-system manipulation - The file system is of particular interest.
Programs need to read and write files and directories, create and
delete them, search them, list file Information, permission
management.
– Communications – Processes may exchange information, on the same
computer or between computers over a network
• Communications may be via shared memory or through message
passing (packets moved by the OS)
– Error detection – OS needs to be constantly aware of possible errors
• May occur in the CPU and memory hardware, in I/O devices, in
user program
• For each type of error, OS should take the appropriate action to
ensure correct and consistent computing
• Debugging facilities can greatly enhance the user’s and
programmer’s abilities to efficiently use the system
5
Operating System Services (Cont.)
• Another set of OS functions exists for ensuring the efficient operation of
the system itself via resource sharing
– Resource allocation - When multiple users or multiple jobs running
concurrently, resources must be allocated to each of them
• Many types of resources - CPU cycles, main memory, file storage,
I/O devices.
– Accounting - To keep track of which users use how much and what
kinds of computer resources
– Protection and security - The owners of information stored in a
multiuser or networked computer system may want to control use of
that information, concurrent processes should not interfere with each
other
• Protection involves ensuring that all access to system resources is
controlled
• Security of the system from outsiders requires user
authentication, extends to defending external I/O devices from
invalid access attempts
6
System Calls
• Programming interface to the services provided
by the OS
• Typically written in a high-level language (C or
C++)
• Mostly accessed by programs via a high-level
Application Programming Interface (API) rather
than direct system call use
• Three most common APIs are Win32 API for
Windows, POSIX API for POSIX-based systems
(including virtually all versions of UNIX, Linux, and
Mac OS X), and Java API for the Java virtual
machine (JVM)
7
Example of System Calls
• System call sequence to copy the contents of one file to
another file
8
Example of Standard API
9
System Call Implementation
• Typically, a number associated with each system call
– System-call interface maintains a table indexed according to
these numbers
• The system call interface invokes the intended system
call in OS kernel and returns status of the system call
and any return values
• The caller need know nothing about how the system
call is implemented
– Just needs to obey API and understand what OS will do as a
result call
– Most details of OS interface hidden from programmer by API
• Managed by run-time support library (set of functions built into
libraries included with compiler)
10
API – System Call – OS Relationship
11
System Call Parameter Passing
• Often, more information is required than simply identity
of desired system call
– Exact type and amount of information vary according to OS and
call
• Three general methods used to pass parameters to the OS
– Simplest: pass the parameters in registers
• In some cases, may be more parameters than registers
– Parameters stored in a block, or table, in memory, and address
of block passed as a parameter in a register
• This approach taken by Linux and Solaris
– Parameters placed, or pushed, onto the stack by the program
and popped off the stack by the operating system
– Block and stack methods do not limit the number or length of
parameters being passed 12
Types of System Calls
• Process control
– create process, terminate process
– end, abort
– load, execute
– get process attributes, set process attributes
– wait for time
– wait event, signal event
– allocate and free memory
– Dump memory if error
– Debugger for determining bugs, single step execution
– Locks for managing access to shared data between
processes
14
Types of System Calls
• File management
– create file, delete file
– open, close file
– read, write, reposition
– get and set file attributes
• Device management
– request device, release device
– read, write, reposition
– get device attributes, set device attributes
– logically attach or detach devices
15
Types of System Calls (Cont.)
• Information maintenance
– get time or date, set time or date
– get system data, set system data
– get and set process, file, or device attributes
• Communications
– create, delete communication connection
– send, receive messages if message passing model to host name
or process name
• From client to server
– Shared-memory model create and gain access to memory
regions
– transfer status information
– attach and detach remote devices
16
Types of System Calls (Cont.)
• Protection
– Control access to resources
– Get and set permissions
– Allow and deny user access
17
Operating System Structure
• General-purpose OS is very large program
• Various ways to structure ones
– Simple structure – MS-DOS
– More complex -- UNIX
– Layered – an abstraction
– Microkernel -Mach
18
Simple Structure -- MS-DOS
• 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
19
Traditional UNIX System Structure
Beyond simple but not fully layered
20
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
21
Microkernel System Structure
• Moves as much from the kernel into user space
• Mach example of microkernel
– Mac OS X kernel (Darwin) partly based on Mach
• 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
• Detriments:
– Performance overhead of user space to kernel space
communication
22
Microkernel System Structure
messages messages
microkernel
hardware
23