Спонсор: Microsoft
Опубликован: 13.11.2010 | Уровень: для всех | Доступ: свободно | ВУЗ: Санкт-Петербургский государственный университет
Лекция 6:

Обзор функций ОС: управление памятью, файлами, процессами, сетями, командными интерпретаторами, сервисы ОС, системные вызовы. Уровни абстракции ОС. Архитектура UNIX и MS-DOS

< Лекция 5 || Лекция 6: 12345 || Лекция 7 >

Управление вторичной памятью

Поскольку размер основной памяти недостаточен для постоянного хранения всех программ и данных, в компьютерной системе должна быть предусмотрена вторичная (внешняя) память для откачки (back up, swapping) части содержимого основной памяти.

В большинстве компьютерных систем в качестве главной вторичной памяти для хранения программ и данных используются диски.

ОС отвечает за выполнение следующих действий, связанных с управлением дисками:

  • Управление свободной дисковой памятью ;
  • Выделение дисковой памяти ;
  • Диспетчеризация дисков (disk scheduling).

При управлении вторичной памятью возникают проблемы, аналогичные проблемам распределения основной памяти. Всякая память, даже самая большая по объему, рано или поздно может исчерпаться, либо фрагментироваться на множество мелких областей свободной памяти. О методах управления основной и внешней памятью речь пойдет подробно ниже в специальных разделах курса.

Управление сетевыми (распределенными) системами.Как уже было сказано в более ранних лекциях, распределенная система – это совокупность процессоров, которые не используют общую память или часы (такты процессора). Каждый процессор имеет собственную локальную память. Процессоры в такой системе соединены в сеть. Сетевое взаимодействие выполняется по определенному протоколу (интерфейсу, набору операций). Наиболее распространенный сетевой протоколTCP/IP, основанный на IP-адресах машин (hosts); например, 190.100.125.1.

В распределенной системе ОС обеспечивает доступ пользователей к различным общим сетевым ресурсам – например, файловым системам или принтерам. Каждому общему ресурсу ОС присваивает определенное сетевое имя и управляет возможностью доступа к нему с различных компьютеров сети. ОС обеспечивает также удаленный запуск программ на другом компьютере сети – возможность входа на другой компьютер и работы на нем, с использованием памяти, процессора и диска удаленной, как правило, более мощной машины, и использованием клиентского компьютера в качестве терминала. В Windows такая возможность называется удаленный рабочий стол (remote desktop connection)UNIX, LINUX, Solaris – rsh (remote shell) и rlogin (remote login).

Доступ к общим ресурсам (shared resource) в распределенной системе позволяет:

  • Ускорить вычисления;
  • Расширить границы доступа к данным;
  • Обеспечить более высокую надежность.

Система защиты (protection)

Термин защита (protection) используется для обозначения механизма управления доступом программ, процессов и пользователей к системным и пользовательским ресурсам.

Механизм защиты в ОС должен обеспечивать следующие возможности:

Различать авторизованный,или санкционированный (authorized) и несанкционированный (unauthorized) доступ. Под авторизацией понимается предоставление операционной системой пользователю или программе какого-либо определенного набора полномочий (permissions),например, возможности чтения или изменения файлов в файловой системе с общим доступом.

Описывать предназначенные для защиты элементы управления (конфигурации). Например, в UNIX используются специальные текстовые конфигурационные файлы для представления информации о файловых системах, к которым возможен сетевой доступ, с указанием списка машин (хостов), с которых возможен доступ, и набора действий, которые могут быть выполнены.

Обеспечивать средства выполнения необходимых для защиты действий (сигналы, исключения, блокировка и др.). Например, система защиты ОС должна фильтровать сетевые пакеты, получаемые извне локальной сети, выбирать и отсеивать "неблагонадежные" (получаемые с подозрительных IP-адресов), сообщать пользователю об обнаруженных и ликвидированных попытках сетевых атак с целью "взлома" Вашего компьютера (что и происходит на практике, например, при работе в Windows, когда Вы выходите в Интернет с Вашего компьютера). Если Вы нарушили условия защиты (например, Ваша программа попыталась обратиться к файлу, работать с которым у Вас нет полномочий), ОС должна выдать понятное сообщение и прекратить работу программы. В современных системах это делается с помощью генерации исключений (exceptions),например, SecurityException.

Система поддержки командного интерпретатора

Большинство команд для ОС задаются с помощью специальных управляющих операторов, предназначенных для выполнения следующих основных функций:

  • создания процессов и управления процессами ; например, в UNIX команда ps –a выводит в стандартный вывод процесса информацию обо всех активных процессах в системе, с указанием их номеров (PID);
  • выполнения ввода-вывода ; например, в системе MS DOS команда type file_name выполняет вывод на терминал содержимого заданного текстового файла;
  • управления вторичной памятью ; например, в UNIX команда share /mydir добавляет директорию /mydir к списку совместно используемых в локальной сети файловых систем;
  • управления основной памятью ; например, команда swap в ОС Solaris позволяет управлять размером пространства дисковой памяти для реализации виртуальной памяти (swap) и выводить информацию о его состоянии;
  • доступа к файловой системе ; например, в большинстве ОС команда cd new_dir устанавливает заданную директорию в качестве текущей (рабочей);
  • защиты ; например, в системе UNIX команда chmod 700 my_home_dir защитит Вашу домашнюю директорию от непрошенных любoпытных глаз – "лазутчик" не сможет даже выполнить команду cd для этой директории и, тем более, читать в ней какие-либо файлы;
  • управления сетью ; например, команды telnet host_name и rlogin host_name (последняя доступна в системе UNIX) служат для удаленного входа на другой компьютер сети.

Программа, которая читает и интерпретирует операторы управления, называется командным интерпретатором. В Windows это интерпретатор command.com, доступный для выполнения команд в окне MS DOS prompt. В UNIX, Linux, Solaris это уже упоминавшиеся всевозможные "шеллы": sh, csh, ksh, bash – процессоры для интерпретации мощных командных языков. Функция командного процессора состоит в том, чтобы прочесть и исполнить очередной управляющий оператор (команду).

Сервисы (службы) ОС

Операционная система предоставляет для пользователей целый ряд сервисных возможностей, или, коротко, сервисов (служб ):

Исполнение программ загрузка программы в память и ее выполнение; например, в Windows при запуске программы ОС находит в файле ее двоичного кода ( .exe ) так называемую заглушку для исполнения (execution stub), содержащую ссылку на код головного метода main, и запускает его. В среде .NET этот же execution stub в файле двоичного кода используется системой для вызова не непосредственно исполняемой программы, а общего окружения времени выполнения – Common Language Runtime (CLR), которое обеспечивает особый режим (managed execution) выполнения программы.

Поддержка ввода-вывода – обеспечение интерфейса для работы программ с устройствами ввода-вывода. Например, в UNIX у каждой программы есть свой стандартный ввод и стандартный вывод (по умолчанию это терминал). В более старых ОС, например, IBM 360, привязку программы к устройствам ввода-вывода требовалось специфицировать с помощью громоздких DD (Data Definition) – предложений на специальном языке управления заданиями.

Работа с файловой системой – предоставление программам интерфейса для создания, именования, удаления файлов. Об этом уже много говорилось выше.

Коммуникация обмен информацией между процессами, выполняемыми на одном компьютере или на других системах, связанных в сеть. В операционных системах реализуется с помощью общей памяти ( shared memory) или передачи сообщений.

Обнаружение ошибок в работе процессора, памяти, устройств ввода-вывода и программах пользователей.

Дополнительные функции ОС

Данные функции реализованы не непосредственно для удобства пользователя, а для обеспечения выполнения операций системы. Это следующие возможности.

Распределение ресурсов между пользователями, программами и процессами, работающими одновременно.

Ведение статистики использования ресурсов, с целью выставления пользователям счетов (например, за сетевой трафик) или для анализа эффективности работы системы.

Защита – обеспечение того, чтобы доступ к любым ресурсам был контролируемым.

< Лекция 5 || Лекция 6: 12345 || Лекция 7 >
Гульжан Мурсакимова
Гульжан Мурсакимова
Василий Четвертаков
Василий Четвертаков
Андрей Садовщиков
Андрей Садовщиков
Россия