1 OPERATING SYSTEMS Lecturer: Szabolcs Mikulas Office: B38B E-mail: [email protected] URL: http://www.dcs.bbk.ac.uk/~szabolcs/o s.html Textbook: A.S. Tanenbaum, Modern Operating Systems, Second edition, Prentice Hall, 2001, ISBN 0-13-031358-0
Dec 10, 2015
1
OPERATING SYSTEMS
Lecturer: Szabolcs MikulasOffice: B38BE-mail: [email protected]: http://www.dcs.bbk.ac.uk/~szabolcs/os.html
Textbook:A.S. Tanenbaum, Modern Operating Systems,Second edition, Prentice Hall, 2001,ISBN 0-13-031358-0
2
OUTLINE
1. Introduction2. Processes and threads3. Deadlock4. Memory management5. Input/output6. File systems7. Multimedia operating systems8. Multiple processor systems9. Security
UNIX and Windows are to be used as running case studies.
3
Introduction
Chapter 1
1.1 What is an operating system1.2 History of operating systems1.3 The operating system zoo1.4 Computer hardware review1.5 Operating system concepts1.6 System calls1.7 Operating system structure
4
Introduction
• A computer system consists of– hardware– system programs– application programs
5
What is an Operating System• It is an extended, or virtual, machine
– provides a simple, high-level abstraction, i.e., hides the “messy details” which must be performed
– presents user with a virtual machine, easier to use– provides services; programs obtain these by
system calls
• It is a resource manager– provides orderly and controlled allocation for
programs in terms of time and space, multiplexing
6
History of Operating Systems
• First generation 1945 - 1955– vacuum tubes, plug boards
• Second generation 1955 - 1965– transistors, batch systems
• Third generation 1965 – 1980– ICs and multiprogramming
• Fourth generation 1980 – present– personal computers
7
Second Generation
Early batch system– bring cards to 1401– read cards to tape– put tape on 7094 which does computing– put tape on 1401 which prints output
8
Second Generation (2)
• Structure of a typical FMS job – 2nd generation
9
Third Generation
Third generation:• Multiprogramming • Timesharing• MULTICS => UNIX
10
Fourth Generation
Fourth generation (1980- ) - Personal computers
• MS-DOS, • Graphical User Interface (GUI),• Windows,• Network and distributed OSs
11
The Operating System Zoo
• Mainframe operating systems
• Server operating systems
• Multiprocessor operating systems
• Personal computer operating systems
• Real-time operating systems
• Embedded operating systems
• Smart card operating systems
12
Computer Hardware Review
• Components of a simple personal computer
Monitor
Bus
13
Processors
(a) A three-stage pipeline(b) A superscalar CPU
14
Memory
• Typical memory hierarchy– numbers shown are rough approximations
15
Hard Disk
Structure of a disk drive
16
Base-Limit Pairs
One base-limit pair and two base-limit pairs
17
Interrupt
(a) Steps in starting an I/O device and getting interrupt(b) How the CPU is interrupted
(a) (b)
18
Pentium System
Structure of a large Pentium system
19
Processes• Program in execution
• Address space: list of memory locations for read and write - code, data, stack
• Process table: one entry for each process,
contains: list of open files,
state
UID etc.
• Communication, scheduling
20
A Process Tree
A created two child processes, B and C
B created three child processes, D, E, and F
21
Deadlock
(a) A potential deadlock. (b) An actual deadlock.
Read-write example
22
Main Memory
Holds executing programs
Multiple programs - protection
Large programs - virtual memory
23
File System
File system for a university department
24
Files• Abstract model of device independent files
• Hierarchy, directories, operations
• Absolute and relative path names - root and working directory
• Special files (for I/O devices): – block s.f.– character s.f.
• Security
25
Mounting
• Before mounting, – files on floppy are inaccessible
• After mounting floppy on b,– files on floppy are part of file hierarchy
26
Pipe
Two processes connected by a pipe
e.g. sort <in|head -30
27
System Calls
• Interface between OS and user programs (to perform privileged operations)
• Machine dependent, but procedure libraries
28
Steps in Making a System Call
There are 11 steps in making the system call read (fd, buffer, nbytes)
29
Some System Calls For Process Management
30
Some System Calls For File Management
31
Some System Calls For Directory Management
32
Some System Calls For Miscellaneous Tasks
33
Shell
• A stripped down shell:
while (TRUE) { /* repeat forever */ type_prompt( ); /* display prompt */ read_command (command, parameters) /* input from terminal */ if (fork() != 0) { /* fork off child process */ /* Parent code */ waitpid( -1, &status, 0); /* wait for child to exit */} else { /* Child code */ execve (command, parameters, 0); /* execute command */ }}
34
Link
Link(/usr/jim/memo,/usr/ast/note)
(a) Two directories before linking/usr/jim/memo to ast's directory
(b) The same directories after linking
35
Mount
mount(/dev/fd0,/mnt,0)
(a) File system before the mount
(b) File system after the mount
36
Windows System Calls
Some Win32 API calls
37
Monolithic System
Simple structuring model for a monolithic system
38
Layered System
Structure of the THE operating system
• MULTICS - concentric rings
39
Virtual Machines
Structure of VM/370 with CMSCMS: Conversational Monitor System
VM: Virtual Machine Monitor - multiprogramming
• MS-DOS on Pentium
• JVM
40
Exokernels
Similar to VM, but
• Restriction to allocated resources
• No need for remap
41
Client-Server Model
Microkernel
• handles communication
• provides low-level resource management
Cf. Mechanism versus policy
42
C-S Model in a DS
The client-server model in a distributed system