Ch. 1 Lecture 1 - 2 PDF
Ch. 1 Lecture 1 - 2 PDF
2
Computer System Structure
3
Four Components of a Computer System
4
Operating System Definition
• OS is a resource allocator
• Manages all resources
• Decides between conflicting requests for efficient and fair
resource use
• OS is a control program
• Controls execution of programs to prevent errors and improper
use of the computer
5
Computer System Organization
• Computer-system operation
• One or more CPUs, device controllers connect through common bus
providing access to shared memory
• Concurrent execution of CPUs and devices competing for memory cycles
6
Computer-System Operation
7
Operating System Structure
• Multiprogramming (Batch system) needed for efficiency
• Single user cannot keep CPU and I/O devices busy at all times
• Multiprogramming organizes jobs (code and data) so CPU always has one to
execute
• A subset of total jobs in system is kept in memory
• One job selected and run via job scheduling
• When it has to wait (for I/O for example), OS switches to another job
8
Memory Layout for Multiprogrammed System
9
Operating-System Operations
10
Operating-System Operations (cont.)
11
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
• 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
12
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
13
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
14
System Calls
15
Example of System Calls
• System call sequence to copy the contents of one file to another file
16
Example of Standard API
17
System Call Implementation
18
API – System Call – OS Relationship
19
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
20
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
21
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
22
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
23
Types of System Calls (Cont.)
• Protection
• Control access to resources
• Get and set permissions
• Allow and deny user access
24
Examples of Windows and Unix System Calls
25
Standard C Library Example
26
Example: MS-DOS
• Single-tasking
• Shell invoked when system
booted
• Simple method to run
program
• No process created
• Single memory space
• Loads program into
memory, overwriting all but
the kernel
• Program exit -> shell
reloaded
At system startup running a program
27
Example: FreeBSD
• Unix variant
• Multitasking
• User login -> invoke user’s choice of
shell
• Shell executes fork() system call to
create process
• Executes exec() to load program into process
• Shell waits for process to terminate or
continues with user commands
• Process exits with:
• code = 0 – no error
• code > 0 – error code
28
Operating System Structure
• General-purpose OS is very large program
• Various ways to structure ones
• Simple structure – MS-DOS
• More complex -- UNIX
• Layered – an abstrcation
• Microkernel -Mach
29
Simple Structure -- MS-DOS
30
Non Simple Structure -- UNIX
31
Traditional UNIX System Structure
Beyond simple but not fully layered
32
Layered Approach
33
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
34
Microkernel System Structure
messages messages
microkernel
hardware
35
iOS
36
Android
• Developed by Open Handset Alliance (mostly Google)
• Open Source
• Similar stack to IOS
• Based on Linux kernel but modified
• Provides process, memory, device-driver management
• Adds power management
• Runtime environment includes core set of libraries and Dalvik virtual machine
• Apps developed in Java plus Android API
• Java class files compiled to Java bytecode then translated to executable than runs in
Dalvik VM
• Libraries include frameworks for web browser (webkit), database (SQLite),
multimedia, smaller libc
37
Android ArchitectureApplications
Application Framework
surface media
Dalvik
manager framework
virtual machine
webkit libc
Linux kernel
38