
- •Операционная система. Функции, назначение. Многопользовательские системы. Мультипрограммные системы.
- •Языки управления заданиями (языки команд операционной системы). Процедуры.
- •Средства управления вводом/выводом. Понятия наборов данных и файлов. Операции поддерживаемые на системном уровне.
- •Управление данными на носителях. Ограничения доступа к наборам данных.
- •Процессы в операционных системах. Общие понятия. Ресурсы процесса.
- •Процессы в операционных системах. Создание и уничтожение процесса. Наследование свойств.
- •Процессы в операционных системах. Взаимодействие процессов. Сигналы и их обработка.
Операционная система. Функции, назначение. Многопользовательские системы. Мультипрограммные системы.
Операционная система – программный комплекс, предоставляющий пользователю средства для выполнения прикладных программ и управления ими, а также обеспечивающий средства доступа прикладных программ к аппаратным ресурсам и средства управления ими – распределение оперативной памяти, процессорного времени, доступ к файлам и периферийным устройствам. Программы пользователя рассматриваются ОС как процессы – именованные области памяти, содержащие выполняемый код, данные и описательную информацию о своем окружении.
Ядро типичной ОС (UNIX) имеет следующую структуру:
Прикладные программы
↨
Интерфейс системных вызовов
↨ ↨
Файловая система <-> Система управления процессами
↨ ↑
Система ввода-вывода │
↨ ↓
Драйверы
↨
Аппаратное обеспечение
ОС классифицируется:
По количеству обслуживаемых пользователей:
Однопользовательские – в один момент времени в системе работает не более одного пользователя, не делается никаких различий между пользователями – все они имеют доступ ко всем ресурсам, предоставляемым ОС.
Многопользовательские – пользователи, использующие систему, различимы, могут работать в системе либо параллельно, либо не более одного в один момент времени. В таких системах существует необходимость в механизмах идентификации и аутентификации пользователей (по учетному имени и паролю), раздельному хранению данных и программ пользователей (в домашних каталогах). В таких системах применяются средства разграничения доступа на уровне пользователей – определение привилегий, дающих права доступа к файлам.
По количеству одновременно выполняемых программ пользователя
Однопрограммные – в один момент времени в системе запущена только одна программа пользователя, получающая полный доступ ко всем ресурсам, предоставляемым ОС.
Многопрограммные – в один момент времени в системе может быть запущено много программ (процессов). В этом случае в состав ядра ОС должен входить планировщик процессов.
Функции планировщика процессов:
создание и удаление процессов;
распределение системных ресурсов (процессорного времени, памяти) между процессами;
синхронизация процессов;
межпроцессное взаимодействие.
В таких ОС усложняется система ввода-вывода, т.к. один файл или устройство может использоваться совместно несколькими процессами. Для предотвращения конфликтов используются блокировки, разрешающие доступ к ресурсу только одному процессу в один момент времени.
Языки управления заданиями (языки команд операционной системы). Процедуры.
Задание в ОС – последовательность операций, которую должна выполнить ОС для достижения некоторой конечной цели, необходимой пользователю. Примером задания может служить последовательность запуска нескольких программ.
cat /home/hello.txt
echo “All done”
Задания описываются при помощи формальных языков, называемые языками управления заданиями. В большинстве ОС обработка задания производится командным интерпретатором. Язык управления заданиями должен обладать следующими свойствами:
иметь средства определения последовательности выполнения программ в задании и средства определения используемых ресурсов (if, switch, for);
иметь средства определения типа выполнения программ (основной режим, фоновый режим, определение приоритета и т.п.);
иметь средства определения условий выполнения частей задания и ветвлений задания (if, switch);
иметь средства проверки состояния ресурсов ОС (файлов и процессов) и их свойств (например, прав доступа).
Примерами языков являются: Bash, CSH. Задание, выполняющее удаление всех временных файлов из домашних каталогов пользователей выглядит на BASH следующим образом:
Пример.
#!/bin/bash
for i in `ls /home/` ; do
rm /home/$i/~*
done
Задания могут оформляться в виде файлов, содержащих тексты задания. В случае необходимости в выделении типичных частей задания в этих заданиях могут использоваться процедуры. процедуры могут быть оформлены либо в виде отдельных файлов с заданиями, вызываемых через операцию расширения области видимости
.proc1.sh param1 param2
либо в виде функции BASH
function proc1()
{
echo “test”
return $2
}
proc1 a b c