2. Общ преглед на операционните системи

2.1 Цели и функции на операционната система
Операционната система е програма, която управлява изпълнението
на приложни програми и е интерфейс между потребителя на компютъра
и хардуера.
Какво очаква потребителят от ОС?
А. Unix: login, файлова система, управление на заданията, многозадачна поддръжка, работа с периферията, мрежова поддръжка, utility
Б. DOS: стартиране на компютъра,  файлова система,  работа с периферията, utility
В. Windows: стартиране на компютъра, файлова система, графична среда, работа с периферията, мрежова поддръжка
** ОС като потребител/компютър интерфейс
--- FIGURE 2.1 ---
Операционната система осигурява следните дейности:
- Създаване на програми - редактори, компилатори, дебъгери
- Изпълнение на програми -
- Достъп до I/O устройства -
- Управление на достъпа до файлове -
- Достъп до системата
- Откриване и обработка на грешки
- Статистика
** ОС като организатор на ресурси
--- FIGURE 2.2 ---
** Възможност за развитие на ОС
- нов hardware
- нови услуги за потребителя
- отстраняване на грешки в ОС



2.2. Развитие на ОС
** Последователна обработка
- без ОС (от края на 40-те г. до средата на 50-те)
- два главни проблема: разпределение на времето между потребителите и много време престой на процесора
** Проста система за обработка на задания (batch system)
- първа ОС (средата на 50-те) за IBM 701
- използване на монитор:
-- последователно стратира заданията
--- FIGURE 2.3 ---
-- език за управление на заданията (job control language - JCL)
$JOB
$FTN
... FORTRAN
$LOAD
$RUN
... Data
$END
- други изисквания към ОС
-- Защита на паметта - разделяне на паметта между 2 програми
-- Крайно време за работа на всяко задание
-- Инструкции, достъпни само за монитора
-- Прекъсвания
** Многозадачна система за обработка на задания
- simple batch system:
Read one record              0.0015 s
Execute 100 instructions  0.0001 s
Write one record             0.0015 s
                                    ------------
Total                             0.0031 s
Натоварване на процесора : 0.0001/0.0031  = 3.2%
 
JOB1 JOB2 JOB3
Type of job Heavy compute Heavy I/O Heavy I/O
Duration 5 min 15 min 10 min
Memory requirement 50K 100K 80K
Need disk? No No Yes
Need terminal? No Yes No
Need printer? No No Yes
--- FIGURE 2.5 ---
 
  Еднозадачна Многозадачна
Използване на процесора 17% 33%
Използване на паметта 30% 67%
Използване на диска 33% 67%
Използване на принтера 33% 67%
Общо време 30 min 15 min
Производителност 6 jobs/h 12 jobs/h
Средно време за изпълнение 18 min 10 min
--- FIGURE 2.6 ---
--- FIGURE 2.7 ---
** Системи с времеделение
 
Многозадачна обработка на задания Времеделение
Принципна цел максимум използване на процесора минимум време за отговор
Вид на командите съм ОС JCL, командите са със заданието командите се въвеждат от терминал
-- Compatible Time-Sharing Systems (CTSS), MIT, 1962
JOB1: 15K
JOB2: 20K
JOB3:  5K
JOB4: 10K
--- FIGURE 2.8 ---


2.3. Главни постижения в развитието на ОС
** Процеси
-- Многозадачност: в отговор на сигнал за завършила I/O операция, процесорът превключва изпълнението на друга програма,  намираща се в ОП.
-- Времеделение: възможност за работа на много потребители
-- Изпълнение на едновременни заявки (real-time transaction system)
- Главни причини за възникване на грешки:
-- Неправилна синхронизация (improper synchronization)
-- Неуспешна едновременна работа с ресурс (failed mutual exclusion)
-- Невалидна инструкция (nondeterminate program operation)
-- Мъртва хватка (deadlock)
- Всеки процес се сътои от 3 части:
-- изпълнима програма;
-- необходими на програмата данни
-- контекст на изпълнението
--- FIGURE 2.9 ---
** Организация на паметта
- изолиране на процесите
- автоматично заделяне на памет и организация
- поддръжка на модулно програмиране
- защита и управление на достъпа
- дълговременна памет
--- FIGURE 2.10 ---
** Защита на информацията и сигурност
Категории дейности:
   1. Управление на достъпа (access control)
   2. Управление на потока с данни (information flow control)
** Планиране и организация на ресурсите
-- справедливост - за всеки процес се осигуряват ресурси
-- отзивчивост - ресурсът се осигурява възможна най-рано
-- ефективност
Long-term queue - нови задания
Short-term queue - готови за изпълнение, диспечер
--- FIGURE 2.11 ---
** Структура на системата
-- CTSS (1963),   MIT, 32000 16-битови думи
-- OS/360 (1964), IBM, >1 млн. машинни инструкции
-- Multics (1975), MIT & Bell Lab, >20 млн. инструкции
 
Ниво Име Обекти Примерни операции
13 Shell User programming environment statements in shall language
12 User processes потребителски процеси quit, kill, suspend, resume 
11 Directories Directories create, destroy, attach, detach, search, list
10 Devices външни устройства: принтери, монитори, клавиатури create, destroy, open, close, read, write
9 File systems файлове create, destroy, open, close, read, write
8 Communications Pipes create, destroy, open, close, read, write
7 Virtual memory сегменти, страници read, write, fetch
6 Local secondary store блокове с данни, канали за устройства read, write, allocate, free
5 Primitive processes Primitive processes, semaphors, ready list suspend, resume, wait, signal
4 Interrupts Interrupt-handling programs invoke, mask, unmask, retry
3 Procedures Procedures, call stack, display mark stack, call, return
2 Instruction set Evaluation stack, microprogram, interpreter, scaler and array data lad, store, add, subtract, branch
1 Electronic circuit Registers, gates, buses, etc. clear, trnsfer, activate, complement


2.4. Характеристики на съвременните ОС
* Microkernel architecture
* Multithreading
* Symetric multiprocessing
* Distrubuted operatin systems
* Object oriented design
--- FIGURE 2.12 ---


2.5. Преглед на Windows NT
** История
** Еднопотребителска многозадачна система
** Архитектура
--- FIGURE 2.13 ---
** Модел клиент/сървер


2.6. Класически UNIX ОС
** История - PDP-7 (1970), MIT & Bell Labs, CTSS, Multics, PDP-11, V6 (1976), V7 (1978)
--- FIGURE 2.14 ---
** Описание
--- FIGURE 2.15 ---
System 5 Release 3, 4.3BSD
--- FIGURE 2.16 ---


2.7. Съвременни UNIX ОС
--- FIGURE 2.17 ---
** System 5 Release 4 (SVR4) , AT&T and Sun Microsystems
** Solaris 2.x , SVR4 с подобрения
** 4.4 BSD, Berkeley Software Distribution (BSD)