* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download ICOM 4015 - Advanced Programming
Survey
Document related concepts
MTS system architecture wikipedia , lookup
Berkeley Software Distribution wikipedia , lookup
Mobile operating system wikipedia , lookup
Copland (operating system) wikipedia , lookup
Plan 9 from Bell Labs wikipedia , lookup
Security-focused operating system wikipedia , lookup
Burroughs MCP wikipedia , lookup
Distributed operating system wikipedia , lookup
Spring (operating system) wikipedia , lookup
Process management (computing) wikipedia , lookup
Transcript
Operating Systems - Administrivia Prontuario - Please time-share and ask questions Info is in my homepage amadeus/~noack/ Make bookmark for ICOM5007 Page contains prontuario Links to old exams and labs Links to Minix and Linux source Kernel Hacker’s guide Links to current assignments as developed Course includes Exams and lecture material Lab work Project (described in course page) Lab Partly in OS/Networking lab Individual programs, often using Linux source or Java threads ICOM 5007 - Noack Operating Systems - More Trivia Accounts already exist for most students Will be automatically created for others Lab instructor - last year was Juan Carvajal Barreto Please find me by e-mail - noack - or X3652 Projects Info on course page Try to form groups soon - three or four people Project can be: Device driver or module Operating system utility Operating system modification/improvement ICOM 5007 - Noack Operating Systems - Basics An OS is a program that controls and shares the resources of a computing system, which are: CPU time (or allotment in distributed systems) Memory allocation and swapping to background I/O device handling - the dirty details File systems Network devices, layers and protocols An OS is (after initial setup) an interrupt-driven program Interrupts may come from: I/O devices Timer interrupts - time slicing and hangup recovery Software interrupts - system call mechanism ICOM 5007 - Noack Operating Systems - Structures Monolithic One big complicated layer between users and hardware Unix is a typical monolithic system Layered - with microkernel Example - Mach contains Processes Threads Messages Memory blocks and everything else is implemented in higher layers using these highly protected basics Virtual Machine VM360 (IBM) is an example The virtual machine layer is: between hardware and client machines emulates a separate machine for each user session ICOM 5007 - Noack The basic layered structure of all operating systems Application layer System call interface Operating system Hardware/software interface Hardware components The concentric shell picture Layers – as usually drawn ICOM 5007 - Noack More OS Structures The main OS program is often called the kernel The Kernel operates in privileged mode contains the device drivers and modules contains process, memory and file management is protected by the system call interface - the INT instruction in 80x86 architecture The system call interface Is implemented by the INT or similar instruction Is used when a user program makes a system call Is the transition from user to kernel mode Keeps users from running kernel code ICOM 5007 - Noack Monolithic operating system structure e. g. Unix/Linux Application layer System call interface Process handling File system routines Memory management Intermediate routine Device driver Device driver Hardware ICOM 5007 - Noack Microkernel-based system e. g. Mach (used for distributed systems) Application layer Outer kernel I Could be Posix Compliant layer Outer kernel II Could be VMS emulator Outer kernel III Experimental OS? Microkernel layer Hardware entities (can be several) ICOM 5007 - Noack Virtual machine system VM – first secure OS for IBM 360/370 User I Application layer User II Application layer User III Application layer Kernel image For User I Kernel image For User II Kernel image For User III Virtual machine layer Hardware ICOM 5007 - Noack The shell is not the kernel The shell is an ordinary user program It operates by creating processes that in turn do system calls or run programs It is the equivalent of COMMAND.COM in MS/DOS Shell programming is possible and is often done in OS utilities Extensions of shell programming include: PERL awk and sed ksh, csh, bash and other enhanced shells ICOM 5007 - Noack The standard lies of OS There is a separate processor for each process The CPU is time-shared You really have all that memory Memory is loaded only when needed - demand paging You are really doing all those disk operations The operations are done when and if the OS pleases - the disk block cache idea That remote file system is really there Remote file system utilities are a little unpredictable The OS is really secure Ask the big kids ICOM 5007 - Noack Concurrency The theoretical core of OS An OS creates a set of processes that run concurrently A process is like a person - it has a stream of consciousness possessions - memory, files, data is created, reproduces, dies interacts with other processes In actuality, it is a program in execution Concurrent process misbehaviors Race conditions - unpredictable results because processes simultaneously modify data or devices Deadlocks - Each has what the other wants, nobody gets anywhere Starvation - some processes go hungry - others eat well ICOM 5007 - Noack Some operating system ideas Everything is a file - even devices This allows a program to work with human input, or a device, or a temporary or permanent file or even a network connection The file system provides access control for devices also – protects raw disk operations from users Interrupt-driven behavior Example - windows - process is simultaneously sensitive to events from mouse, keyboard, process subsystem, and window manager Caching - Foreground and background copies Used in Cache memory Swapping The disk block cache - recent transactions are in memory Networking utilities Advantage – operations take place at memory speeds ICOM 5007 - Noack