* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Ceng 334 - Operating Systems
Process management (computing) wikipedia , lookup
Library (computing) wikipedia , lookup
Berkeley Software Distribution wikipedia , lookup
Burroughs MCP wikipedia , lookup
Plan 9 from Bell Labs wikipedia , lookup
Copland (operating system) wikipedia , lookup
Mobile operating system wikipedia , lookup
Spring (operating system) wikipedia , lookup
Distributed operating system wikipedia , lookup
Security-focused operating system wikipedia , lookup
Chapter 1: Introduction • What is the aim of the subject? • Why are OSes important? • What is an OS? • A bit of history • Some basic OS concepts • How does an OS work? • OS Structures Ceng 334 - Operating Systems 1-1 The Aim of the Subject WILL NOT TEACH YOU HOW TO USE AN OPERATING SYSTEM. • It will examine • the way in which an OS works • the algorithms and data structures inside an OS • the problems, solutions and trade offs in designing an OS TO ACHIEVE AN UNDERSTANDING OF HOW AN OPERATING SYSTEM WORKS. Ceng 334 - Operating Systems 1-2 Computer System Components • Application Software : Bank automation system, airline reservations, payroll etc. • System Software : OS, data base, compilers, editors etc. Ceng 334 - Operating Systems 1-3 What is SYSTEM SOFTWARE? • System software provides the environment and the tools to create the application software (sort of virtual machine) • It is also the interface between the hardware and the applications Ceng 334 - Operating Systems 1-4 Why is the OS Important? • The operating system is the foundation upon which all computing work is performed. • Knowledge of the internals of an OS is essential to achieve efficiency in – building software applications – deciding upon a computing platform Ceng 334 - Operating Systems 1-5 What is an Operating System? • A big, complex program (sometimes many) • It has two main purposes in life – An interface between the user and the hardware (provides a virtual machine) – Provide efficient, safe management of computing resources Ceng 334 - Operating Systems 1-6 Life without an OS • Every programmer would – have to know the hardware – be able to access the hardware • Every program – would contain code to do the same thing – probably do something wrong Ceng 334 - Operating Systems 1-7 Where does the OS Fit? System Calls Users and User Programs Operating System CPU & Memory I/O Devices Ceng 334 - Operating Systems Hardware 1-8 History : First Generation (1945-1955) • Vacuum tubes • No operating system • Programming is done by wiring a plug board • Applications are mostly numerical calculations (trajectory computations, computation of tables such as sine, cosine etc.) Ceng 334 - Operating Systems 1-9 History: Second Generation (1955-1965) • Transistors • Commercially produced computers • Very expensive and very slow computers compared with your old PC at home • Batch operation (collect jobs, run in one go, print all outputs) Ceng 334 - Operating Systems 1-10 • Spooling (Simultaneous Peripheral Operation On-line) • off-line spooling • on-line spooling • Off-line spooling : replace slow I/O devices with I/O dedicated computers so that the main system sees these machines as its I/O devices Ceng 334 - Operating Systems 1-11 Early Batch Systems • • • • bring cards to 1401 read cards to tape put tape on 7094 which does computing put tape on 1401 which prints output Ceng 334 - Operating Systems 1-12 A Deck of Cards (Program) Ceng 334 - Operating Systems 1-13 • Applications are mostly scientific and engineering calculations (eg., solution of partial differential equations) • High level languages such as FORTRAN and COBOL Ceng 334 - Operating Systems 1-14 History: Third Generation (1965-1980) • Integrated circuits (small scale) packed as chips • I/O processors (channels) which can work in parallel with CPU - Multiprogramming Ceng 334 - Operating Systems 1-15 Multiprogramming system - three jobs in memory Ceng 334 - Operating Systems 1-16 • On-line spooling (using channels) • Time-sharing (TTY terminals and VDU’s) • Multics OS - original UNIX Minicomputers - Cheaper than mainframes but with limited hardware (eg. DEC PDPx) Ceng 334 - Operating Systems 1-17 History: Fourth Generation (1980-1990) • • • • Large scale integration Personal computers CP/M, MS DOS, Unix operating systems Networks Ceng 334 - Operating Systems 1-18 Now! • Client/Server computation • Clients : PCs, workstations running under Windows and UNIX operating systems • Servers : systems that run under UNIX and Windows NT • Internet and intranet networking (WWW) Ceng 334 - Operating Systems 1-19 Important Points • OS provides – a simpler, more powerful interface – higher level services • OS services only accessed via system calls • Users and programs can’t directly access the hardware Set of System Calls (APIs) is what programs think the operating system is. Ceng 334 - Operating Systems 1-20 Some OS Concepts •Kernel – The main OS program. Contains code for most services. Always in primary memory •Device Drivers – Programs that provide a simple, consistent interface to I/O devices – Typically part of the kernel Ceng 334 - Operating Systems 1-21 Some OS Concepts •Program – A static file of machine code on a disk •Process – A program in execution. – The collection of OS data structures and resources owned by a program while it is running. Ceng 334 - Operating Systems 1-22 Producing an Executable Source Code Object File Compile Executable Link Libraries and other Object files Ceng 334 - Operating Systems 1-23 A Simple Program to print a directory #include #include #include <sys/types.h> <dirent.h> "ourhdr.h" int main(int argc, char *argv[]) { DIR *dp; struct dirent *dirp; Functions supplied by system libraries. These functions will contain a trap instruction. if (argc != 2) err_quit("a single argument (the directory name) is required"); if ( (dp = opendir(argv[1])) == NULL) err_sys("can't open %s", argv[1]); while ( (dirp = readdir(dp)) != NULL) printf("%s\n", dirp->d_name); closedir(dp); exit(0); } Ceng 334 - Operating Systems 1-24 User Program #2 RAM User Program #1 trap 002 4 1 3 User Mode 1. Program performs trap 2. OS determines service number 3. Service is located and executed. 4. Control returns to user program. Based on a diagram from “Modern Operating Systems” by Andrew Tanenbaum. 2 Kernel Ceng 334 - Operating Systems System/Kernel Mode 1-25 Steps in Making a System Call There are 11 steps in making the system call : read (fd, buffer, nbytes) Ceng 334 - Operating Systems 1-26 Some System Calls For Process Management Ceng 334 - Operating Systems 1-27 Some System Calls For File Management Ceng 334 - Operating Systems 1-28 Some System Calls For Directory Management Ceng 334 - Operating Systems 1-29 Some System Calls For Miscellaneous Tasks Ceng 334 - Operating Systems 1-30 A System Call Example • A stripped down shell: while (TRUE) { type_prompt( ); read_command (command, parameters) /* repeat forever */ /* display prompt */ /* input from terminal */ if (fork() != 0) { /* Parent code */ waitpid( -1, &status, 0); } else { /* Child code */ execve (command, parameters, 0); } } /* fork off child process */ Ceng 334 - Operating Systems /* wait for child to exit */ /* execute command */ 1-31 OS Structures • • • • Monolithic systems Hierarchy of layers Virtual machines Micro-kernel (client/server) model Ceng 334 - Operating Systems 1-32 Monolithic System • OS has no structure but is a collection of procedures with well defined calling interfaces • Program - OS interface is via supervisor calls (SVC) SVC Program Ceng 334 - Operating Systems Interrupt Handler Service routine 1-33 Simple structuring model for a monolithic system Ceng 334 - Operating Systems 1-34 Monolithic System (Cont.) • OS code is a binded object program and its source code may be logically divided into • OS main program • System call service routines • Utility procedures which help service routines Ceng 334 - Operating Systems 1-35 Layered System • Structure of “THE” OS (a batch OS) Ceng 334 - Operating Systems 1-36 Layered System (Cont.) 0. Process switching, multi programming, CPU scheduling 1. Memory and swap space (disk) management (“segment controller”) 2. Message interpretation, job control (JCL) functions 3. I/O management (virtual peripherals) 4. User programs 5. Operator Ceng 334 - Operating Systems 1-37 Layered System (Cont.) • Synchronisation between layers : Hardware and software (semaphores) interrupts • Each layer provides some sort of a “virtual machine” Ceng 334 - Operating Systems 1-38 Virtual Machines User Programs OS1 OS2 OS3 OS4 Virtual Machine Physical Hardware • VM provides “n” duplicates of physical hardware using software. So different Oses can work in the same machine at the same time Ceng 334 - Operating Systems 1-39 What is wrong so far? • OS is one large program that provides all the required services. • Anytime you add a new device you must – get a device driver for the device – recompile the kernel with the new device driver – reboot the machine so the new kernel will be used Ceng 334 - Operating Systems 1-40 Micro-Kernel (Client/Server) Model • OS is a minimal core known as Kernel. Ceng 334 - Operating Systems 1-41 • The kernel contains the minimum of function – – – – memory management basic CPU management inter-process communication (messages) I/O support • Other functionality provided by user level processes Ceng 334 - Operating Systems 1-42 Characteristics of Kernel • • • • Makes use of message passing Easy to replace server processes Easier to write and port OS Design is perfect for distributed systems • Less performance Ceng 334 - Operating Systems 1-43