SS201µ Introduction to the Internal Design of Operating Systems
Session 1 Definition and Structure
- f Operating Systems
Sébastien Combéfis Winter 2020
Session 1 Definition and Structure of Operating Systems Sbastien - - PowerPoint PPT Presentation
SS201 Introduction to the Internal Design of Operating Systems Session 1 Definition and Structure of Operating Systems Sbastien Combfis Winter 2020 This work is licensed under a Creative Commons Attribution NonCommercial
Sébastien Combéfis Winter 2020
This work is licensed under a Creative Commons Attribution – NonCommercial – NoDerivatives 4.0 International License.
What it is, what it does and the relation between both
To the user and to the system through system calls
With software abstractions stored and managed by the OS
3
processor(s) main memory disk(s) graphics card(s) printer keyboard screen(s) network interface(s) speaker(s) mouse webcam scanner
5
processor(s) main memory disk(s) graphics card(s) printer keyboard screen(s) network interface(s) speaker(s) mouse webcam scanner
5
Hardware Software Data
No useful functions in itself, used by other programs
OS code only executed following events reported by interruptions
6
7
Provides user programs an interface to the hardware
Practical: easy to use by users (PC, mobile) Efficient: optimise the use of hardware (mainframes) Scalable : addition of new system functions
Created piece by piece with a clear delimitation
8
Each layer uses services from below to provide services to above
Hardware Operating system Application(s) User(s) 9
Processor (CPU), memory, input/output devices (I/O)
Coordination between applications and users
Word processing, compiler, video game, web browser, etc.
People, machine, other computers, etc.
10
Great diversity: toaster, car, space shuttle, house, game machine, industrial control system, etc.
Microsoft 1998 lawsuit with Internet Explorer
Kernel, system programs and application programs
11
Providing an access to the hardware for applications
Transparent handling of the hardware
Hardware Abstraction CPU and memory Processes and threads Storage on disk Files Network interface Sockets, RPC, RMI Display Drawing libraries and windows 13
File system, standard libraries, window system, etc.
Protection: jobs must not interfere with each other Communication: jobs must be able to interact tohether Resource management: resource sharing must be facilitated
14
Processes to execute, I/O to handle, users to respond to
Distinguishing the execution of the OS code from the user code
user mode kernel mode 15
To the user To the system itself
But common service classes are identifiable Operating System
Services to the user Services to the system
16
user and system programs
hardware user interface GUI batch CLI system calls services
program execution I/O operations file system communication resource allocation accountability error detection protection and security
17
Interface to the services made available by the OS Generally accessible as C/C++ routines
For example to make direct access to the hardware
Encapsulate system calls sequence to avoid direct call Access to an API from a library (libc, for example)
18
1 Get the name of the source file
Display a sentence on the standard output Read the standard input
2 Get the name of the destination file
Display a sentence on the standard output Read the standard input
3 Open the source file, create and open the destination file 4 As long as reading the file does not fail
Read a character from the source file Write the character to the destination file
5 Close the source and destination files 19
user application system call interface
xxx()
user mode
xxx() { ... ... return ...; }
kernel mode
20
The system call is executed in a privileged mode of the OS
Relay by intercepting system calls in the API Use an associative table numbering the system calls
It must respect the API and pass correct parameters It must understand the returned value
21
22
No error management at all
1
void copy(char *src , char*dst)
2
{
3
char buffer[BUFFSIZE ];
4
int srcFile = open(src , O_RDONLY );
5
int dstFile = open(dst , O_WRONLY | O_CREAT , 0666);
6 7
if (srcFile !=
dstFile !=
8
int r;
9
while ((r = read(srcFile , buffer , BUFFSIZE )))
10
write(dstFile , buffer , r);
11 12
close(srcFile);
13
close(dstFile);
14
}
15
}
23
Several system calls are common to most OS
Process control File management Device management IT maintenance Communication Protection
24
System utility helps program development/execution
File management: ls, mv, mkdir, rm, etc. Status information: whoami, time, ps, top, etc. Text file editing: vi, nano, etc. Support for programming languages: cc, java, etc. Program loading and execution: gdb, bash, etc. Communication: ftp, mail, ssh, etc. Background services: bg, screen, tmux, etc.
25
Resources sharing: CPU, memory, I/O devices, etc. Compartmentalisation of programs
Programme: passive and on the disk Process: active and in the memory
Time Process
A B C D
27
Executable software is organised in sequential processes
It feels like it is the only one running on the processor
A process can be stopped at any time by the OS
28
On some systems, they are always active
Creation and deletion of processes CPU allocation (scheduling) and other resource allocation Synchronisation and communication Deadlock management
29
It is only one of the area used in memory
Text Data Heap Stack Max
30
Five main states are common to most OS
NEW READY WAITING RUNNING
TERMINATED
admitted dispatch interrupt E/S, event wait E/S, event completion exit
31
Several FIFO queues can be used to handle process execution
Ready queue Processor admit dispatch exit interrupt Blocked queue E/S, event completion E/S, event wait
32
Moved from the memory to the disk (swapping)
NEW
READY / SUSPENDED
READY WAITING
WAITING / SUSPENDED
RUNNING
TERMINATED
admitted admitted dispatch interrupt E/S, event wait E/S, event completion exit suspend activate E/S, event completion activate suspend suspend
33
Each process has its own entry in this table
... Open files list Memory limits Registers Ordinal counter Process number Process state
34
Disk → main memory
1 Machine level management 2 Pagination and segmentation
Each byte is uniquely identified by an address
35
Load instruction from the memory Store instruction to the memory
The unit responds to the requests without any interpretation
Addresses of the bytes located in the main memory
36
base: the smallest legal physical address limit: the size of the memory area
Process Process Process OS 20000 40000 60000 80000 90000
limit = 20000 base = 40000 37
Using a privileged instruction in kernel mode CPU ≥ <
addressing error addressing error
Memory
base base + limit
address yes yes no no
38
Size limitation corresponds to the physical memory
Physical addresses generated by the CPU Logical addresses loaded in the memory-address register
This address is read by the memory unit
39
The user program only manipulates logical addresses
CPU MMU Memory ∆
relocation register
logical address
x
physical address
x + ∆
40
Logical memory divided into pages with the same size
Logical memory space page 3 page 2 page 1 page 0 Page table 3 7 2 3 1 4 1 Physical memory space 6 5 4 3 2 1 page 0 page 2 page 1 page 3 41
page number, shift
Entries with physical address of the page
Page-Table Base Register (PTBR) Page-Table Length Register (PTLR)
42
The shift is applied to the frame, once identified
CPU p s f s Memory
page table
f
43
Decreasing the number of main memory accesses
CPU p s f s Memory
table des pages
f
TLB miss TLB hit
44
Abraham Silberschatz, Peter B. Galvin, & Greg Gagne (2013). Operating System Concepts, John Wiley & Sons, ISBN: 978-1-11809-375-7. William Stallings (2017). Operating Systems: Internals and Design Principles, Pearson, ISBN: 978-1-29221-429-0.
45
quapan, November 26, 2011, https://www.flickr.com/photos/hinkelstone/7050697671. Beao, September 9, 2009, http://commons.wikimedia.org/wiki/File:Personal_computer,_exploded_6.svg. Evan-Amos, February 19, 2017, http://commons.wikimedia.org/wiki/File:PS4-Console-wDS4.jpg. McZusatz, January 22, 2013, http://commons.wikimedia.org/wiki/File:Boeing_787-8_N787BA_cockpit.jpg. Jochembr, January 5, 2014, http://commons.wikimedia.org/wiki/File:Snackomatic.jpg. Dennis Skley, August 12, 2014, https://www.flickr.com/photos/dskley/14711793077. Jean-Pierre Dalbéra, September 23, 2014, https://www.flickr.com/photos/dalbera/15766751411.
46