Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
24
Добавлен:
10.02.2015
Размер:
40.45 Кб
Скачать

42

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

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

С 1990-х наиболее распространенными операционными системами являются ОС семейства Microsoft Windows и UNIX-подобные системы.

Функции:

Интерфейсные функции:

  1. Управление аппаратными средствами, устройствами ввода/вывода

  2. Файловая система

  3. Поддержка многозадачности (разделение использования памяти, времени выполнения)

  4. Ограничение доступа, многопользовательский режим работы

  5. Сеть

Внутренние функции:

  1. Обработка прерываний

  2. Виртуальная память

  3. Планировщик задач

  4. Буферы ввода-вывода

  5. Обслуживание драйверов устройств

Операционная система состоит из следующих компонентов:

  1. Ядро занимается планировкой задач и обеспечивает доступ к оборудованию.

  2. Системные библиотеки предоставляют приложениям интерфейс к функциям ядра на более абстрактном уровне.

  3. Оболочка представляет пользовательский интерфейс — интерфейс командной строки или графический пользовательский интерфейс.

  4. Низкоуровневые системные утилиты для управления ядром и оборудованием (форматирование дисков, включение/выключение и т.д.)

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

Процесс обычно определяют как экземпляр выполняемой программы, и он состоит из двух компонентов:

  1. объекта ядра, через который операционная система управляет процессом. Там же хранится статистическая информация о процессе;

  2. адресного пространства, в котором содержится код и данные всех EXE- и DLL модулей. Именно в нем находятся области памяти, динамически распределяемой для стеков потоков и других нужд.

Процессы инертны. Чтобы процесс что-нибудь выполнил, в нем нужно создать поток. Именно потоки отвечаю за исполнение кода, содержащегося в адресном пространстве процесса. В принципе, один процесс может владеть несколькими потоками, и тогда они "одновременно" исполняют код в адресном пространстве процесса.

Для этого каждый поток должен располагать собственным набором регистров процессора и собственным стеком. В каждом процессе есть минимум один поток. Если бы у процесса не было ни одного потока, ему нечего было бы делать на этом свете, и система автоматически уничтожила бы его вместе с выделенным ему адресным пространством.

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

При создании процесса первый (точнее, первичный) поток создается системой автоматически. Далее этот поток может породить другие потоки, те в свою очередь — новые и т.д.

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

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

Каждому процессу выделяется собственное виртуальное адресное пространство. Для 32-разрядных процессов его размер составляет 4 Гб. Соответственно 32-битный указатель может быть любым числом от 0x00000000 до 0xFFFFFFFF. Всего, таким образом, указатель может принимать 4,294,967,296 значений, что как раз и перекрывает четырехгигабайтовый диапазон. Для 64-разрядных процессов размер адресного пространства равен 16 экзабайтам, поскольку 64-битный указатель может быть любым числом от 0x00000000'00000000 до 0xFFFFFFFF'FFFFFFFF и принимать 18,446,744,073,709,551,616 значений, охватывая диапазон в 16 экзабайтов. Весьма впечатляюще!

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

В Windows 2000 память, принадлежащая собственно операционной системе, тоже скрыта от любого выполняемого потока. Иными словами, ни один поток не может случайно повредить ее данные. А в Windows 98 последнее, увы, не реализовано, и есть вероятность, что выполняемый поток, случайно получив доступ к данным операционной системы, тем самым нарушит ее нормальную работу. И все-таки в Windows 98, как и в Windows 2000, ни один поток не может получить доступ к памяти чужого процесса.

Для управления внешними устройствами компьютера используются специальные системные программы — драйверы. Драйверы стандартных устройств образуют в совокупности базовую систему ввода-вывода (BIOS), которая обычно заносится в постоянное ЗУ компьютера.

Защита данных

Защита данных на примере операционной системы Windows2000 реализуется с помощью применения файловой системы NTFS, которая предоставляет доступ к файлам и папкам конкретным пользователям и группам пользователей. А также с помощью EFS (Encryption File System) – файловая система, которая может использоваться на томах NTFS, позволяющая «на лету» шифровать и дешифровать файлы. Но если операционная система окажется неработоспособной, то восстановить зашифрованные данные будет невозможно.

Интерфейс прикладного программирования

Это набор функций, с помощью которого программист может писать программы под операционную систему. Для операционных систем Microsoft Windows – это Win32Api. Это набор динамически подгружаемых библиотек (DLL), в которых содержатся функции.

Пользовательский интерфейс

Windows поддерживает два типа приложений: основанные на графическом интерфейсе (graphical user interface, GUI) и консольные (console user interface, CUI). У приложений первого типа внешний интерфейс чисто графический. GUI-приложения создают окна, имеют меню, взаимодействуют с пользователем через диалоговые окна и вообще пользуются всей стандартной "Windows'овской" начинкой. Почти все стандартные программы Windows — Notepad, Calculator, Wordpad и др. — являются GUI-приложениями. Приложения консольного типа работают в текстовом режиме: они не формируют окна, не обрабатывают сообщения и не требуют GUI. И хотя консольные приложения на экране тоже размещаются в окне, в нем содержится только текст. Командные процессоры вроде Cmd.exe (в Windows 2000) или Command.com (в Windows 98) — типичные образцы подобных приложений.

Вместе с тем граница между двумя типами приложений весьма условна. Можно, например, создать консольное приложение, способное отображать диалоговые окна. Скажем, в командном процессоре вполне может быть специальная команда, открывающая графическое диалоговое окно со списком команд, вроде мелочь — а избавляет от запоминания лишней информации. В то же время можно создать и GUI-приложение, выводящее текстовые строки в консольное окно. Но, конечно, графический интерфейс предпочтительнее, чем старомодный текстовый. Как показывает опыт, приложения на основе GUI "дружественнее" к пользователю, а значит и более популярны.

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