160 likes | 330 Views
BU01. OPERATING SYSTEMS. Main tasks of Operating System. To hide HW specifics (abstract layer for programs) Processes maintenance Memory maintenance Files maintenance I/O maintenance (peripheral devices) Network maintenance Permissions and access User Graphics Interface. Processes.
E N D
BU01 OPERATING SYSTEMS
Main tasks of Operating System • To hide HW specifics (abstract layer for programs) • Processes maintenance • Memory maintenance • Files maintenance • I/O maintenance (peripheral devices) • Network maintenance • Permissions and access • User Graphics Interface (C) Macur J. 2009
Processes • Process - executed program containing sequence of instructions realizing some algorithms. Each process consumes some computer resources: • time of processor • part of operating memory • some peripheral devices • disk space • etc. • Operating system is responsible for following manipulating with process: • Creating (loading) and running of process • Terminating and deleting of process • Suspending and resuming of process (C) Macur J. 2009
States of processes • new process is loaded into memory, creating a new record in table of processes • run processor executes instructions of process • wait processor does not executes instructions of process, process is waiting for some event (e.g. finishing of I/O device operation) • ready process is loaded and waiting for starting • terminated process has been finished but not deleted yet Operating system provides to the process requested services (access to the devices, increases amount of the memory for process, arranges communication between processes etc.) Process description, process attributes, and state are stored in the table of processes PCB – Process Control Block. (C) Macur J. 2009
Properties of process • Important attributes of process: • Unique Identifier PID (process ID). Integer number depends on the history. • Permissions of process. Each process runs with permissions of some user. Full permissions has the user "administrator, "system", resp. "root". • Priority of process. According to this level the resources are assigned to the process in comparison with another ones. • Name of process. Derived from the name of the file that process was loaded from. • OS can evaluate CPU and memory consumption of running process. • OS can also evaluate number of bytes sent by process to/from particular I/O device. • Process can create subprocesswith attributes inherited from parent process. (Parental – child process). • OS consists of system processes (they run in privileged and normal regime). (C) Macur J. 2009
Preemptive and cooperative architecture • PreemptiveOS provides to processes only limited time interval of processor. After this interval (some ms) is process changed into the "wait-status" and another process in the queue is activated. During the suspension of process OS has to store all information allowing the process to be resumed ( great overhead, but enables multitasking) . • Various OS use various algorithms for processes planning and processor assigning (process scheduling). Process priority and OS requests must be evaluated. More processor kernels complicates this evaluating. Main goal: using the processor in the best wait with minimal overhead of process maintenance. • Cooperative OS assigns the processor to the process (jump instruction), but the process must return the processor to the OS in its own overhead (jump instruction to entry point of OS). (C) Macur J. 2009
Threads • Process is container of threads. Each thread runs relatively independent and inherits from process its resources and permissions. • Each process contains one thread at least. Instructions performed by processor in fact belongs rather to the thread than process. • Processes are isolated and can communicate only through services of operating system. Unlike processes, threads of one process can communicate in direct way by sharing of memory space. • Threads can also create, terminate or suspend another threads of the same process. In PC with many processors or multikernel processor each kernel is assigned to various thread automatically by OS. • Useful technique is to create particular thread for resources demand computation to protect another activity (especially GUI) from blocking. • E.g. For each request to the web server there is one independent thread created to handle the request and send a response. (C) Macur J. 2009
Memory maintenance • Instructions can contain addresses of data or another instruction (jumps). There is a problem of address adjusting without knowledge of future location of process in operating memory. • Solution: during programming process the programmers use logical (virtual) addresses. Real (physical) address consists of logical address adding the content of special relocation register of processor. This register is set up by OS for each process to secure their own memory. • Difference between logical and physical address schematically: • Processor obtains jump instruction to address 123 • Contain of relocation register: 80000 • Resulting address in the memory where the jump will be realized to, is the sum 80123 • While content of relocation register is constant during the process existence each address-oriented instructions will work correctly despite of random placing the process. • Memory fragmentation problem (C) Macur J. 2009
Memory paging • To protect the memory from fragmentation paging mechanisms is used: • Physical memory is divided into the frames of the same size (4 KB). • Logical memory is divided by the same way into the pages of the same size. • Before starting the process OS analyzes needed number of frames. The table of pages is created: addresses of free frames are assigned to each logical page. • There is continuous logical space for each process, each address in instructions is relocated into the addresses in the space of free frames. Physical memory space where process is placed can be discontinuous. • Maximal unused space for process is 4 KB. • This mechanisms of memory paging is supported by modern processors starting Intel 80386 • Process cannot use frames outside its space – guaranteed by processor • Manipulating of relocation registry content is evidently dangerous. That is why these instructions are performed only for OS not for standard processes. Process of OS runs in privileged regime. (C) Macur J. 2009
Virtual memory • Through the mechanisms of physical and logical pages OS can provide to the process the amount of memory greater than its physical limit. • Rarely used pages can by removed from the memory to the special disk file (swapfile). Released space can be used by the new process (swapping). • Table of pages has the flag for each page indicating that the page is in memory space (and can be used) or the pages is swapped and must be resumed before using. In that case the page is reloaded into the free frame and the page table is repaired. • There is a great number of algorithms to minimize transport of pages between memory and disk. • In case of running too many process simultaneously the swapping process is active and the system performance goes down. On the other hand this situation is better than crash. In any case we can some of the unused process terminate. (C) Macur J. 2009
Filesystem – System of files • Information stored on peripheral memory is organized as system of files (logical units of data or programs). • Structure of this system of files is different according to • Operating system • Type of peripheral memory • File is identified by its name and included into the hierarchy of folders (directories) • Access to the File System(moving the file into/from the system memory) is allowed only through the services of operating system. • Operating system contain abstractlayerhiding specific organization and file structure. Files can be stored not only on magnetic disks, as well as other devices (flash drive, CD, DVD, magnetic tape, file system on another computer across a network, etc.). • Programs working with files can use the same operating system services (so-called logical or Virtual file system). (C) Macur J. 2009
Access layers to filesystem • At the lowest level are custom disk controller drivers that transmit data between disks and memory. • Subroutines of the next layer use the services of drivers to allow reading and writing the required sectors (Basic File System). • Another layer already contains information about the general distribution of occupied sectors and their belonging to the files (File Organization Module). • The last layer, which is then used by user programs (so called application layer), organizes files into directories, assigns file attributes (owner, permissions, time of creation, etc.) and allows programs own reading and writing files (Logical File System). • The first three layers are usually unavailable for normal programs. (C) Macur J. 2009
Filesystem’s Metadata • Information of the distribution of files on individual sectors of the disk, and their attributes are also stored on the disk in the system tables, called metadata. • When working with a file an application layer creates entry in the metadata - a special data structure describing the file to disk (FCB - File Control Block). • FCB contains the file attributes (owner, access permissions, size, creation time, etc.) and a list of sectors in which the file is located. • Layer hierarchy of operating system for file system ensures that when changing the contents of the file structure FCB is changed synchronously (delete, transfer of data, create a new text file, etc.) • Because of acceleration is a copy of FCB stored in the memory and only after the closing of the file is copied to the disk. • Missing file closing can lead to the file damaging. (C) Macur J. 2009
Allocation unit • FAT file system: disk is divided into allocation units (clusters) consisting of the constant number of consecutive sectors. Metadata contains the FAT (File Allocation Table) - list of cluster numbers containing the file (concatenated list). • For each file is required one cluster at least. If the file does not fit exactly into a number of allocation units, the capacity of the disk remains unused. • The numbers in the table allow addressing FAT clusters according to their range: (e.g. the numbers stored in 16 bits (FAT16) can address up to 216 = 65 636 clusters) • The minimum possible size of the cluster grows proportional to the total capacity of the disk. Larger clusters, however, always lead to worse effective capacity. • One of the methods to introduce smaller clusters on large drives: the division of the total disk capacity in the area (partitions) that behave as independent disks (they contain their own tables FAT). • Another method is based on larger numbers addressing clusters (FAT32 can contain about 4,000,000,000 clusters). • Disk fragmentation. (C) Macur J. 2009