SS201 µ Introduction to the Internal Design of Operating Systems Session 1 Definition and Structure of Operating Systems Sébastien Combéfis Winter 2020
This work is licensed under a Creative Commons Attribution – NonCommercial – NoDerivatives 4.0 International License.
Objectives Define computing system and operating system (OS) What it is, what it does and the relation between both Understand the services provided by an OS To the user and to the system through system calls Discover how the OS handles CPU, memory and input/output With software abstractions stored and managed by the OS 3
Operating System
Modern Computing System screen(s) disk(s) processor(s) scanner graphics card(s) printer main memory keyboard network interface(s) mouse speaker(s) webcam 5
Modern Computing System screen(s) disk(s) processor(s) scanner graphics card(s) printer main memory keyboard network interface(s) mouse speaker(s) webcam 5
Computing vs Operating System Computing system composed of three elements Hardware Software Data The OS provides an environment to use these resources No useful functions in itself, used by other programs Modern OS controlled by interruptions OS code only executed following events reported by interruptions 6
Operating System Example 7
Operating System Intermediate software layer between user and hardware Provides user programs an interface to the hardware Three main objectives for an OS Practical : easy to use by users (PC, mobile) Efficient : optimise the use of hardware (mainframes) Scalable : addition of new system functions Very large and very complex software system Created piece by piece with a clear delimitation 8
Computing System Structure (1) A computing system can be seen with four layers Each layer uses services from below to provide services to above User(s) Application(s) Operating system Hardware 9
Computing System Structure (2) The hardware provides computing resources Processor (CPU), memory, input/output devices (I/O) The operating system coordinates the use of hardware Coordination between applications and users The applications solve problems from the users Word processing, compiler, video game, web browser, etc. The users uses the computing sustem People, machine, other computers, etc. 10
Definition There is no universally adopted definition Great diversity: toaster, car, space shuttle, house, game machine, industrial control system, etc. “Everything in the box when you buy an OS” Microsoft 1998 lawsuit with Internet Explorer “Only program running on the computer all the time” Kernel, system programs and application programs 11
Operating System Services
OS Abstraction Environment for applications to work Providing an access to the hardware for applications Several abstractions are proposed by the OS 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
OS Function The OS acts as a service provider File system, standard libraries, window system, etc. The OS works as a coordinator on three aspects Protection : jobs must not interfere with each other Communication : jobs must be able to interact tohether Resource management : resource sharing must be facilitated 14
OS Operation The OS does nothing as long as there is nothing to do Processes to execute, I/O to handle, users to respond to Alternation between two modes of execution Distinguishing the execution of the OS code from the user code user mode kernel mode 15
OS Services (1) The OS proposes two kinds of services To the user To the system itself Services offered vary by the OS But common service classes are identifiable Services to the user Operating System Services to the system 16
OS Services (2) user and system programs GUI batch CLI user interface system calls program resource I/O operations file system communication accountability execution allocation protection error detection and security services operating system hardware 17
System Call Using the services of the OS through system calls Interface to the services made available by the OS Generally accessible as C/C++ routines Very low level tasks to write in assembly language For example to make direct access to the hardware Application Programming Interface (API) (Win32, POSIX, Go...) Encapsulate system calls sequence to avoid direct call Access to an API from a library ( libc , for example) 18
File Copy Example (1) 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
System Call Execution (1) user application user mode xxx() system call interface kernel mode . . . i xxx() { . ... . . ... return ...; } 20
System Call Execution (2) Switching from user mode to kernel mode The system call is executed in a privileged mode of the OS Management through a system call interface Relay by intercepting system calls in the API Use an associative table numbering the system calls The user program ignores system call details It must respect the API and pass correct parameters It must understand the returned value 21
System Call Documentation 22
File Copy Example (2) Simplified version of a file copy No error management at all 1 void copy( char *src , char *dst) 2 { buffer[BUFFSIZE ]; 3 char srcFile = open(src , O_RDONLY ); 4 int dstFile = open(dst , O_WRONLY | O_CREAT , 0666); 5 int 6 if (srcFile != -1 && dstFile != -1) { 7 int r; 8 ((r = read(srcFile , buffer , BUFFSIZE ))) 9 while write(dstFile , buffer , r); 10 11 close(srcFile); 12 close(dstFile); 13 } 14 15 } 23
System Call Categories Available system calls depend on the OS Several system calls are common to most OS Six main categories of system calls can be identified Process control File management Device management IT maintenance Communication Protection 24
System Program Interface with the OS thanks to system program System utility helps program development/execution Several categories of system programs 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
Process and Memory
Process An OS can execute several programs Resources sharing: CPU, memory, I/O devices, etc. Compartmentalisation of programs A process is a running program Programme : passive and on the disk Process : active and in the memory Process D C B A Time 27
Process Abstraction A process is an abstraction for CPU resources Executable software is organised in sequential processes Each process has its own virtual processor It feels like it is the only one running on the processor No timing assumptions A process can be stopped at any time by the OS 28
Process Management The OS must continuously manage the executed processes On some systems, they are always active Several operations are made by the OS Creation and deletion of processes CPU allocation ( scheduling ) and other resource allocation Synchronisation and communication Deadlock management 29
Memory Structure A process is not only composed of the code of the program It is only one of the area used in memory Max Stack Heap Data Text 0 30
Five-State Model (1) A process can be in different states during its execution Five main states are common to most OS dispatch admitted exit NEW READY RUNNING TERMINATED interrupt E/S, event completion E/S, event wait WAITING 31
Five-State Model (2) The OS maintains several data structures to manage processes Several FIFO queues can be used to handle process execution Ready queue dispatch admit exit Processor interrupt E/S, event wait E/S, event completion Blocked queue 32
Process Suspension A process can be temporarily suspended Moved from the memory to the disk (swapping) NEW admitted admitted suspend dispatch activate exit READY / RUNNING TERMINATED SUSPENDED READY interrupt suspend E/S, event E/S, event completion E/S, event wait completion activate WAITING / WAITING SUSPENDED suspend 33
Process Table The OS keeps a process table in memory Each process has its own entry in this table Process state Process number Ordinal counter Registers Memory limits Open files list ... 34
Memory Program loaded in memory becomes a process Disk → main memory Several algorithms are used to manage the memory 1 Machine level management 2 Pagination and segmentation The memory is just a large byte array Each byte is uniquely identified by an address 35
Recommend
More recommend