bu01. main tasks of operating system to hide hw specifics (abstract layer for programs) processes...

14
BU01

Upload: toby-harrell

Post on 16-Jan-2016

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BU01. Main tasks of Operating System  To hide HW specifics (abstract layer for programs)  Processes maintenance  Memory maintenance  Files maintenance

BU01

Page 2: BU01. Main tasks of Operating System  To hide HW specifics (abstract layer for programs)  Processes maintenance  Memory maintenance  Files maintenance

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

2(C) Macur J. 2009

Page 3: BU01. Main tasks of Operating System  To hide HW specifics (abstract layer for programs)  Processes maintenance  Memory maintenance  Files maintenance

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

3(C) Macur J. 2009

Page 4: BU01. Main tasks of Operating System  To hide HW specifics (abstract layer for programs)  Processes maintenance  Memory maintenance  Files maintenance

States of processes new

process is loaded into memory, creating a new record in table of processes

runprocessor executes instructions of process

waitprocessor does not executes instructions of process, process is waiting for some event (e.g. finishing of I/O device operation)

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

4(C) Macur J. 2009

Page 5: BU01. Main tasks of Operating System  To hide HW specifics (abstract layer for programs)  Processes maintenance  Memory maintenance  Files maintenance

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 subprocess with attributes inherited from parent process. (Parental – child process).

OS consists of system processes (they run in privileged and normal regime).

5(C) Macur J. 2009

Page 6: BU01. Main tasks of Operating System  To hide HW specifics (abstract layer for programs)  Processes maintenance  Memory maintenance  Files maintenance

Preemptive and cooperative architecture Preemptive OS 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 6

Page 7: BU01. Main tasks of Operating System  To hide HW specifics (abstract layer for programs)  Processes maintenance  Memory maintenance  Files maintenance

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 7

Page 8: BU01. Main tasks of Operating System  To hide HW specifics (abstract layer for programs)  Processes maintenance  Memory maintenance  Files maintenance

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 8

Page 9: BU01. Main tasks of Operating System  To hide HW specifics (abstract layer for programs)  Processes maintenance  Memory maintenance  Files maintenance

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 9

Page 10: BU01. Main tasks of Operating System  To hide HW specifics (abstract layer for programs)  Processes maintenance  Memory maintenance  Files maintenance

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 10

Page 11: BU01. Main tasks of Operating System  To hide HW specifics (abstract layer for programs)  Processes maintenance  Memory maintenance  Files maintenance

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 abstract layer hiding 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 11

Page 12: BU01. Main tasks of Operating System  To hide HW specifics (abstract layer for programs)  Processes maintenance  Memory maintenance  Files maintenance

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 12

Page 13: BU01. Main tasks of Operating System  To hide HW specifics (abstract layer for programs)  Processes maintenance  Memory maintenance  Files maintenance

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 13

Page 14: BU01. Main tasks of Operating System  To hide HW specifics (abstract layer for programs)  Processes maintenance  Memory maintenance  Files maintenance

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 14