* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Introduction to Operating Systems (continued)
Survey
Document related concepts
Plan 9 from Bell Labs wikipedia , lookup
Copland (operating system) wikipedia , lookup
Library (computing) wikipedia , lookup
Security-focused operating system wikipedia , lookup
Process management (computing) wikipedia , lookup
Distributed operating system wikipedia , lookup
Spring (operating system) wikipedia , lookup
Burroughs MCP wikipedia , lookup
Thread (computing) wikipedia , lookup
Transcript
Introduction to Operating Systems (continued) CS-2301, System Programming for Non-majors (Slides include materials from The C Programming Language, 2nd ed., by Kernighan and Ritchie and from C: How to Program, 5th ed., by Deitel and Deitel) CS-2301 B-term 2008 Introduction to Operating Systems 1 Review – Four fundamental Abstractions • Processes & threads • Multiplexing of processor(s) to create the illusion of many of them • Virtual memory • Multiplexing of physical memory and disk blocks to create illusion of own memory per process • Files & persistent storage • Organizing principles about long-term data storage • Sockets & connections • Organizing principles about network communication CS-2301 B-term 2008 Introduction to Operating Systems 2 Review – Abstraction • The distillation of a complex mechanism into a simple, conceptual model • User of abstraction does not need to worry about details • Implementer of abstraction does not need to worry about how user will use it (within limits) CS-2301 B-term 2008 Introduction to Operating Systems 3 Definition – Process • A particular execution of a program • Different from all other executions of that program • Different from executions of other programs • The OS uses one or more CPUs to make it look like each process has own CPU • Can execute at same time! • Uses interrupts to manage and enforce multiplexing of CPU CS-2301 B-term 2008 Introduction to Operating Systems 4 Definition – Interrupt • A mechanism by which the processor suspends execution of the current, running program and gives control to the OS • OS saves the state of the interrupted program so that it can be restarted later • OS then takes appropriate action CS-2301 B-term 2008 Introduction to Operating Systems 5 Review – Why Processes? • Independent applications can share a computing system • Enables applications to overlap computation with external activities • Exploit parallelism in modern processors • Vehicle for managing resources, security, etc. CS-2301 B-term 2008 Introduction to Operating Systems 6 Resources Assigned to a Process • Memory • Virtual or real • Processor time • Priorities • Deadlines for real-time activities • Privileges • Security, authentication, etc. • Files and file space • For long-term storage, temporary storage • Devices • For input and output activity, sensors, etc. CS-2301 B-term 2008 Introduction to Operating Systems 7 Note • Every command on Linux command line creates a separate process • May run in foreground or background • Double-clicking on icon in Windows often creates a separate process • May run in same window or another window • Processes in embedded systems are usually created at system startup CS-2301 B-term 2008 Introduction to Operating Systems 8 Questions about Processes? CS-2301 B-term 2008 Introduction to Operating Systems 9 Four fundamental Abstractions • Processes & threads • Multiplexing of processor(s) to create the illusion of many of them • Virtual memory • Multiplexing of physical memory and disk blocks to create illusion of own memory per process • Files & persistent storage • Organizing principles about long-term data storage • Sockets & connections • Organizing principles about network communication CS-2301 B-term 2008 Introduction to Operating Systems 10 Definition – Virtual Memory • The illusion that each process has its own memory – Separate from virtual memories of other processes – (Often) more memory than machine has installed • Implemented by translating “logical” addresses of program into “physical” address of RAM (random access memory) – Every memory reference, both program and data, on-the-fly • E.g., when the program utters 0x00105C, … – … the machine accesses 0x61605C • OS creates illusion by swapping blocks of memory from RAM to disk and back as needed – Called pages CS-2301 B-term 2008 Introduction to Operating Systems 11 Virtual Memory for Process (Windows & Linux) 0xFFFFFFFF stack (dynamically allocated) SP address space heap (dynamically allocated) static data 0x00000000 CS-2301 B-term 2008 program code (text) Introduction to Operating Systems PC 12 Virtual Memory (continued) • Typical virtual memory size – 4 GBytes • Per process — even in a 1 GByte computer! • “Inactive” pages are not resident in RAM • Reference results in interrupt called a page fault • OS brings in page from disk, (maybe) swaps one out • Unused pages not filled in by OS • Dereferencing pointer results in Segmentation Fault • New pages created by OS as needed • When stack or heap grows or programs are loaded CS-2301 B-term 2008 Introduction to Operating Systems 13 Virtual Memory in Embedded Systems • Implemented by partitioning RAM • No swapping in or out • May not even have a disk! CS-2301 B-term 2008 Introduction to Operating Systems 14 Questions about Processes or Virtual Memory? Not in Kernighan & Ritchie CS-2301 B-term 2008 Introduction to Operating Systems 16 Threads • A refinement of concept of process • Short for “thread of control” • Concurrent execution of a function within the context of a process • Needs own stack in order to call other functions • Shares heap, static data, and code with other threads of same process • Reason • Application may need to manage concurrency of its own computation with external events CS-2301 B-term 2008 Introduction to Operating Systems 17 Thread Interface – POSIX standard #include <pthread.h> • int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void*(*start_routine) (void), void *arg) – creates a new thread of control – new thread begins executing at start_routine • pthread_exit(void *value_ptr) – terminates the calling thread • pthread_join(pthread_t thread, void **value_ptr) – blocks the calling thread until the thread specified terminates • pthread_t pthread_self() – Returns the calling thread's identifier CS-2301 B-term 2008 Introduction to Operating Systems 18 Thread Interface – POSIX standard #include <pthread.h> • int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void*(*start_routine) (void), void *arg) – creates a new thread of control – new thread begins executing at start_routine • pthread_exit(void *value_ptr) – terminates the calling thread • pthread_join(pthread_t thread, void **value_ptr) – blocks the calling thread until the thread specified terminates • pthread_t pthread_self() – Returns the calling thread's identifier CS-2301 B-term 2008 Introduction to Operating Systems 19 Thread Interface – POSIX standard #include <pthread.h> • int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void*(*start_routine) (void), void *arg) – creates a new thread of control – new thread begins executing at start_routine • pthread_exit(void *value_ptr) – terminates the calling thread • pthread_join(pthread_t thread, void **value_ptr) – blocks the calling thread until the thread specified terminates • pthread_t pthread_self() – Returns the calling thread's identifier CS-2301 B-term 2008 Introduction to Operating Systems 20 Thread Example pthread_create(tp, &f, &args) f main function g main function f h main function f pthread_join(tp) CS-2301 B-term 2008 Introduction to Operating Systems 21 Thread Example pthread_create(tp, &f, &args) Two threads run at the same time f main function g main function f h main function f pthread_join(tp) CS-2301 B-term 2008 Introduction to Operating Systems 22 Virtual Memory for Multiple Threads 0xFFFFFFFF thread 1 stack SP (T1) thread 2 stack SP (T2) thread 3 stack SP (T3) Virtual address space heap static data 0x00000000 CS-2301 B-term 2008 PC (T2) PC (T1) PC (T3) code (text) Introduction to Operating Systems 23 Why Threads? • To enable development of applications with concurrent activities inside them • Need to share data (difficult with separate virtual memories) • Examples • • • • • Web server over common data pages Transaction processor over common data base Applications within a mobile phone or PDA Applications with different speeds of devices … CS-2301 B-term 2008 Introduction to Operating Systems 24 Example Thread Application • One or more threads to get data from sensor • 1000 times per second; cannot afford to miss a reading • Places data on queue • Another thread processes and displays data • Removes and processes each data item from queue • Displays system state on control panel • User thread • Allows operator to adjust system parameters • While other threads are still running CS-2301 B-term 2008 Introduction to Operating Systems 25 Additional Functions & Data Required • pthread_mutex_t — mutual exclusion lock – Enables a thread to “lock” some data so that other threads do not touch in mid-operation • pthread_cond_t — condition variable – Enables a thread to wait for an event to happen – Signaled by another thread • See man pages for details CS-2301 B-term 2008 Introduction to Operating Systems 26 Questions about Threads? Not in Kernighan & Ritchie CS-2301 B-term 2008 Introduction to Operating Systems 27 Four fundamental Abstractions • Processes & threads • Multiplexing of processor(s) to create the illusion of many of them • Virtual memory • Multiplexing of physical memory and disk blocks to create illusion of own memory per process • Files & persistent storage • Organizing principles about long-term data storage • Sockets & connections • Organizing principles about network communication CS-2301 B-term 2008 Introduction to Operating Systems 28 Definition – File • A (potentially) large amount of information or data that lives a (potentially) very long time • Often much larger than the memory of the computer • Often much longer than any computation • Sometimes longer than life of machine itself • (Usually) organized as a linear array of bytes or blocks • Internal structure is imposed by application • (Occasionally) blocks may be variable length • (Often) requiring concurrent access by multiple threads or processes • Even by processes on different machines! CS-2301 B-term 2008 Introduction to Operating Systems 29 Implementations of Files • Usually on disks (or devices that mimic disks) • Magnetic – hard drive or floppy • Optical – CD, DVD • Flash drives – electronic memory, organized as disks • Requirement • Preserve data contents during power-off or disasters • Directory / Folder • Special kind of file that points to other files • Associates names with files CS-2301 B-term 2008 Introduction to Operating Systems 30 Implementations of Files • Usually on disks (or devices that mimic disks) • Magnetic – hard drive or floppy • Optical – CD, DVD • Flash drives – electronic memory, organized as disks • Requirement • Preserve data contents during power-off or disasters • Directory / Folder • Special kind of file that points to other files • Associates names with files CS-2301 B-term 2008 Introduction to Operating Systems 31 File Access in C • See Kernighan & Ritchie, Chapter 8 • Raw file access • Without simplifying stream functions – e.g., – scanf, fscanf, printf, fprintf, fgetc, etc. • read and write raw disk blocks • Seek to a file position – lseek, fseek — sets file pointer to specified location – Subsequent read, write, etc., start there – ftell – returns file pointer CS-2301 B-term 2008 Introduction to Operating Systems 32 Organizations of Files • Contiguous • Blocks stored contiguously on storage medium • E.g., CD, DVD, some large database systems • Access time to any block is O(1) • Linked • Blocks linked together – File Allocation Table (FAT) • Access time is O(n) • Indexed • Blocks accessed via tree of index blocks (i-nodes) • Access time is O(log n) • However, base of logarithm may be very large (>100) CS-2301 B-term 2008 Introduction to Operating Systems 33 Organizations of Files • Contiguous • Blocks stored contiguously on storage medium • E.g., CD, DVD, some large database systems • Access time to any block is O(1) • Linked • Blocks linked together – File Allocation Table (FAT) • Access time is O(n) • Indexed • Blocks accessed via tree of index blocks (i-nodes) • Access time is O(log n) • However, base of logarithm may be very large (>100) CS-2301 B-term 2008 Introduction to Operating Systems 34 Organizations of Files • Contiguous • Blocks stored contiguously on storage medium • E.g., CD, DVD, some large database systems • Access time to any block is O(1) • Linked • Blocks linked together – File Allocation Table (FAT) • Access time is O(n) • Indexed • Blocks accessed via tree of index blocks (i-nodes) • Access time is O(log n) • However, base of logarithm may be very large (>100) CS-2301 B-term 2008 Introduction to Operating Systems 35 Questions about Files? CS-2301 B-term 2008 Introduction to Operating Systems 36 Four fundamental Abstractions • Processes & threads • Multiplexing of processor(s) to create the illusion of many of them • Virtual memory • Multiplexing of physical memory and disk blocks to create illusion of own memory per process • Files & persistent storage • Organizing principles about long-term data storage • Sockets & connections • Organizing principles about network communication CS-2301 B-term 2008 Introduction to Operating Systems 37 Sockets and Connections • Connection: – a serial conversation over a network between two end points • e.g., processes, threads, tasks on different computers – organized as a sequence of messages or datagrams – distinct from all other connections • Socket: – An end point of a connection – An abstraction that allows a process to send or receive only the information of that connection – Multiplexed on network with all other connections CS-2301 B-term 2008 Introduction to Operating Systems 38 Sockets and Connections • Defer to another course CS-2301 B-term 2008 Introduction to Operating Systems 39 General Questions? CS-2301 B-term 2008 Introduction to Operating Systems 40