session 1 definition and structure of operating systems
play

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


  1. SS201 µ Introduction to the Internal Design of Operating Systems Session 1 Definition and Structure of Operating Systems Sébastien Combéfis Winter 2020

  2. This work is licensed under a Creative Commons Attribution – NonCommercial – NoDerivatives 4.0 International License.

  3. 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

  4. Operating System

  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

  6. 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

  7. 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

  8. Operating System Example 7

  9. 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

  10. 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

  11. 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

  12. 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

  13. Operating System Services

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. System Call Execution (1) user application user mode xxx() system call interface kernel mode . . . i xxx() { . ... . . ... return ...; } 20

  22. 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

  23. System Call Documentation 22

  24. 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

  25. 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

  26. 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

  27. Process and Memory

  28. 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

  29. 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

  30. 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

  31. 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

  32. 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

  33. 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

  34. 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

  35. 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

  36. 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