Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС / 1.docx
Скачиваний:
185
Добавлен:
03.06.2014
Размер:
5.4 Mб
Скачать

Исполнение программ в ms dos

Как уже упоминалось, операционная система MS DOS была разработана в конце 1970-х гг. для 16-разрядных процессоров фирмы Intel (x86). Эта система, по сравнению с предшествующими ей по времени операционными системами для mainframe-компьютеров MULTICS, ОS IBM 360 и др., была значительно проще по возможностям, в частности, она была однозадачной. Это сознательное упрощение было вызвано жесткими ограничениями по памяти: объем основной памяти, предоставляемый задаче для выполнения, был равен всего 640 килобайт. Схема распределения памяти при выполнении программ в системе MS DOS изображена на рис. 6.2.

Рис. 6.2. Выполнение программ в MS DOS.

Исполнение нескольких программ в unix

Система UNIX, первоначально, как уже говорилось, разработанная в 1970 г. для миникомпьютеров PDP 10, была многозадачной (т .е. поддерживала режим мультипрограммирования) – несмотря на ограниченный объем памяти, система могла одновременно обрабатывать несколько заданий пользователей. Система поддерживала также и режим разделения времени, а впоследствии – и сетевое взаимодействие. В UNIX работали компиляторы с нескольких языков, в том числе – Паскаль. Использовались инструментальные средства, ставшие классическими, - утилита make – для сборки проектов, утилита lex – генератор лексических анализаторов в компиляторах; yacc – генератор синтаксических анализаторов в компиляторах; grep – утилита текстового поиска и фильтрации с помощью регулярных выражений; awk – язык для обработки табличной информации; sed – потоковый редактор текстов. Была реализована, с одной стороны, развитая, с другой - унифицированная файловая система, лишенная надуманных сложностей IBM 360 и "Эльбруса". Схема размещения в памяти одновременно нескольких заданий пользователя и их обработки в режиме мультипрограммирования изображена на рис. 6.3.

Рис. 6.3. Выполнение нескольких пользовательских программ в системе UNIX.

Коммуникационные модели

Одновременно обрабатываемые операционной системой пользовательские процессы должны иметь возможность коммуникации друг с другом. Такая коммуникация реализуется в операционных системах двумя способами – с помощью общей памяти и с помощью передачи сообщений. Обе схемы коммуникации процессов изображены на рис. 6.4. Рис. 6.4. Коммуникация процессов с помощью передачи сообщений и с помощью общей области памяти.

При первом способе, процесс A для передачи сообщения M процессу B выполняет системный вызов - например, send (B, M),- т.е. фактически передает это сообщение ядру ОС. Процесс B, в свою очередь, выполняет системный вызов для получения сообщения – например, M = receive (B) – т.е. фактически получает сообщение M от ядра ОС, подобно какому-либо ресурсу системы.

При втором способе, оба процесса взаимодействуют через общую область памяти, адрес которой известен им обоим. Такой способ может оказаться более быстрым, но необходимо учесть, что в данном случае процессы должны позаботиться о синхронизации (см. "Архитектура ОС. Управление процессами: Основные понятия. Семафоры и мониторы"), так как общая область памяти – это общий ресурс, при обращении к которому может возникнуть race condition.

Системные программы – разновидность сервисов операционной системы

Системные программы обеспечивают удобное окружение для разработки и исполнения программ. Они подразделяются на программы:

Управления файлами ; например, файл-менеджеры типа Norton Commander и Far в MS DOS и Windows Commander – в Windows;

Получения информации о состоянии; например, Task Manager – программа в системе Windows для управления процессами и получения информации об их состоянии, загрузке процессора и используемой памяти. Вызывается комбинацией клавиш Ctrl – Alt – Del.

Создания и изменения файлов ; например, текстовые редакторы notepad и wordpad и программа paint для создания и редактирования рисунков, поставляемые с ОС Windows.

Поддержки языков программирования ; например, компиляторы с языков Си ( cc ) и Java ( javac ), поставляемые с большинством операционных систем;

Загрузки и исполнения программ ; например, ld – загрузчик и редактор связей UNIX;

Коммуникации ; например, Windows Messenger – программа обмена мгновенными сообщениями, часть ОС Windows.

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

Соседние файлы в папке ОС