Prezentace aplikace PowerPoint

Download Report

Transcript Prezentace aplikace PowerPoint

BU01
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
2
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
3
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
4
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).
(C) Macur J. 2009
5
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
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
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
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
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
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
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
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
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