Файл: Функции операционных систем персональных компьютеров (Сущность операционной системы).pdf
Добавлен: 13.05.2023
Просмотров: 374
Скачиваний: 3
СОДЕРЖАНИЕ
Глава I. Сущность операционной системы компьютера, её основные функции
1.1 Сущность операционной системы
1.2 Подходы к классификации функций операционных систем
1.3 Универсальная классификация
1.4 Программная реализация функций
1.5 Посредническая функция: интерфейс пользователя
1.6 Распределение ресурсов и управление ими
1.7 Обеспечение безопасности информации
1.8 Обеспечение режима мультипрограммирования
1.9 Управление оперативной памятью
1.10 Управление работой приложений (API)
Глава II. Перспективы развития операционных систем
2.1 Перспективы развития классических операционных систем
Дополнительные функции:
- Динамическое распределение памяти, т.е. выполнение запросов приложений на выделение им дополнительной памяти на время выполнения.
- Создание новых служебных информационных структур (описателей процессов и потоков, буферов и др.)
- Защита памяти, которая состоит в том, чтобы не позволить выполняемому процессу записывать или читать данные из памяти, назначенной другому процессу.[20]
Одним из наиболее популярных способов управления памятью в современных ОС является так называемая виртуальная память. Наличие в ОС виртуальной памяти позволяет программисту писать программу так, как будто в его распоряжении имеется однородная ОП большого объема, часто существенно превышающего объем имеющейся физической памяти. В действительности все данные, используемые программой, хранятся на диске и при необходимости частями (сегментами или страницами) отображаются в физическую память. При перемещении кодов и данных между ОП и диском подсистема ВП выполняет трансляцию виртуальных адресов, полученных в результате компиляции и компоновки программы, в физические адреса ячеек ОП.[21]
Для идентификации переменных и команд на разных этапах цикла программы используются символьные номера (метки), виртуальные адреса и физические адреса:
Символьные номера присваивает пользователь при написании программы на алгоритмическом языке или ассемблере (имена переменных и входных точек программных модулей).
Физические адреса соответствуют номерам ячеек ОП, где в действительности будут расположены переменные и команды. Физическая память представляет собой упорядоченное множество ячеек, и все они пронумерованы, т.е. к каждой из них можно обратиться, указав ее порядковый номер (адрес). Количество ячеек физической памяти ограниченно и фиксировано.
Виртуальные адреса (математические или логические), вырабатывает транслятор, переводящий программу на математический язык. Поскольку во время трансляции в общем случае неизвестно в какое место ОП будет загружена программа, то транслятор присваивает переменным и командам виртуальные (условные) адреса, обычно считая по умолчанию, что начальным адресом будет нулевой адрес.
ОС должна связать каждое указанное пользователем имя с физической ячейкой памяти, т.е. осуществить отображение пространства имен на физическую память компьютера. В общем случае это отображение осуществляется в два этапа: сначала системой программирования, а затем ОС (с помощью специальных программных модулей управления памятью и использования соответствующих аппаратных средств вычислительной системы). Между этими этапами обращения к памяти имеют форму виртуального адреса.[22]
Переход от виртуальных адресов к физическим может осуществляться двумя способами. В первом случае замену виртуальных адресов на физические делает специальная системная программа - перемещающий загрузчик. Перемещающий загрузчик на основании имеющихся у него исходных данных о начальном адресе физической памяти, в которую предстоит загружать программу, и информации, предоставленной транслятором об адресно-зависимых константах программы, выполняет загрузку программы, совмещая ее с заменой виртуальных адресов физическими.
Второй способ заключается в том, что программа загружается в память в неизмененном виде в виртуальных адресах, при этом операционная система фиксирует смещение действительного расположения программного кода относительно виртуального адресного пространства. Во время выполнения программы при каждом обращении к оперативной памяти выполняется преобразование виртуального адреса в физический. Второй способ является более гибким, он допускает перемещение программы во время ее выполнения, в то время как перемещающий загрузчик жестко привязывает программу к первоначально выделенному ей участку памяти. Вместе с тем использование перемещающего загрузчика уменьшает накладные расходы, так как преобразование каждого виртуального адреса происходит только один раз во время загрузки, а во втором случае - каждый раз при обращении по данному адресу.[23]
В некоторых случаях (обычно в специализированных системах), когда заранее точно известно, в какой области оперативной памяти будет выполняться программа, транслятор выдает исполняемый код сразу в физических адресах.
1.10 Управление работой приложений (API)
Прикладную компьютерную программу часто называют приложением. Приложения не взаимодействуют напрямую с устройством компьютера, а только через операционную систему. Последняя позволяет программистам абстрагироваться от деталей реализации и функционирования устройств, предоставляя необходимый для работы приложений набор функций. Этот набор, содержащий в себе несколько тысяч функций, называют интерфейсом прикладного программирования API.
Программисты, разрабатывая приложения, в программах используют необходимые функции API, тем самым дают команды операционной системе сделать ту или иную операцию. Поэтому без ОС работа приложений невозможна.
Операционная система осуществляет запуск, выполнение и завершение приложений. Прежде, чем запустить приложение, ОС считывает соответствующий файл из внешней памяти и загружает его в оперативную память. При выполнении приложения ОС обеспечивает выделение ресурсов компьютера, необходимых для работы данного приложения. Если запущено несколько приложений, ОС управляет правильным распределением ресурсов компьютера между этими приложениями.
Для правильной работы приложение должны пройти операцию инсталляции.
Современные операционные системы берут на себя управление процессом установки приложения. Они управляет распределением ресурсов компьютера между приложениями, обеспечивают доступ устанавливаемого приложения к драйверам устройств, формируют общие ресурсы, регистрируют приложение.[24]
Процесс деинсталляции приложения также находится под «юрисдикцией» операционной системы.
Глава II. Перспективы развития операционных систем
2.1 Перспективы развития классических операционных систем
В настоящее время существует огромное множество операционных систем – от долгожителей (UNIX и его клоны) до совсем новых и малоизвестных. Исследовав различные операционных системы, проанализировав их сущность и содержание, можно выделить основные направления развития функций ОС.
Графические оболочки. Графический пользовательский интерфейс имеют все современные операционные системы. Следует отметить, что большинство из них унифицированы и внешне похожи друг на друга, отличаясь элементами оформления. Некоторые романтики из числа учёных предполагают, что уже наши дети будут пользоваться не экранной графической оболочкой, а трёхмерной проекцией.
В более обозримом будущем неизбежно произойдёт полная унификация графических оболочек. Будет осуществлена поддержка новых тенденций в развитии интерфейсов multi-touch, tablet PC и др.
Механизмы безопасности и защиты. Современные ОС уделяют всё больше и больше внимания механизмам безопасности. Браузеры при загрузке веб-страниц производят проверку на отсутствие фишинга, совершенствуются системы идентификации пользователей. С развитием криптографии будет практически невозможно получить доступ к личным данным пользователя.
Поддержка многопоточности и многоядерных процессоров. Многоядерные процессоры получили широкое распространение в современном мире. Параллельное выполнение потоков возможно исключительно благодаря многоядерной архитектуре. В дальнейшем, до достижения условного порога вычислительной мощности, количество и мощность процессоров будут расти в геометрической прогрессии.[25]
Поддержка параллельных вычислений. В будущем будут совершенствоваться высокоуровневые библиотеки, позволяющие разрабатывать параллельные алгоритмы решения задач. Взаимодействие параллельных процессов будет происходить без задержек, мгновенно и высокоэффективно. Параллельные алгоритмы в своём совершенном виде будут напоминать имитацию квантовой операционной системы.
Полная виртуализация операционных систем. Специализированное программное обеспечение, именуемое хостом, уже сейчас позволяет создавать виртуальные машины, обладающие характеристиками реальных компьютеров. В качестве примера виртуализации может выступать симметричная мультипроцессорная компьютерная архитектура, которая использует более одного процессора. В большинстве случаев операционная система конфигурируется таким образом, чтобы несколько процессоров выглядели в форме единого процессорного модуля. В дальнейшем эта технология может стать основополагающей.
Некоторые теоретики информационных технологий – такие, как, например, Э. Таненбаум и Х. Бос[26] – выделяют отдельно ещё одну немаловажную функцию, частично входящую в перечисленные в предыдущей главе, но всё же самостоятельную: обеспечение диалога между пользователем и устройством.
Под диалогом в данном контексте понимается удобное пользователю взаимодействие с устройством. Говоря иначе, это имитация общения между машиной и человеком на языке, понятном им обоим.
С развитием искусственного интеллекта функция диалога претерпит огромные изменения. Это будет максимально приближенный к реальной коммуникации диалог, осмысленный и доступный любому пользователю. Необходимость в сложных манипуляциях с операционной системой пропадёт сама по себе. Операционная система станет помощником, способным поддержать диалог и адекватно реагировать на вербальные запросы.
2.2 Операционные системы в квантовых компьютерах
В настоящее время полным ходом идёт разработка квантовых вычислительных устройств. Квантовый компьютер – это вычислительное устройство, работающее по принципам квантовой механики.
Так как квантовая частица может находиться в так называемом состоянии суперпозиции (единомоментно сразу в нескольких состояниях), устройство, работающее на квантовой основе, способно одновременно обрабатывать невообразимо огромное количество информации.[27]
В начале нашего века выяснилось, что использование электрических схем для создания вычислительны устройств имеет свои границы. В настоящее время практически все эти границы достигнуты. Однако задачи, встающие перед современной информатикой, требуют своего решения, для которого необходимо привлечения иных средств.
Простой пример такой задачи – разложение больших чисел на множители. При кажущейся тривиальности проблемы, компьютер, её решивший, получит доступ к совершению транзакций во всех банках мира.
Другая задача, встающая перед квантовыми компьютерами – моделирование квантовых систем и ДНК.
Классический компьютер работает на основе транзисторов и кремниевых чипов, которые используют для обработки информации двоичный код. Бит, как минимальная единица информации, имеет два базовых состояния – 1 и 0. Работа же квантового компьютера будет основываться на принципе суперпозиции, поэтому вместо битов используют так называемые «кубиты», которые одновременно могут находиться во всех возможных состояниях – 1 и 0.[28]
Согласно мнению большинства учёных, подобная технология сделает простейший квантовый компьютер в сотни миллионов раз мощнее самого современного и безупречно технически оснащённого классического электронного вычислительного.
В 2015 году учёные из Кембриджа разработали первую операционную систему, на базе которой сможет функционировать квантовый компьютер.
Операционная система под названием t|ket> создана компанией CQCL и на данный момент представляет собой полноценную ОС, прекрасно функционирующую на симуляции квантового компьютера. Компания, сделавшая данное открытие, надеется, что разработанное программное обеспечение позволит коммерциализировать квантовые вычисления.[29]
Перед любыми операционными системами подобного плана будет неизменно вставать ряд труднорешаемых задач: