→ Пошук по сайту       Увійти / Зареєструватися
Знання Операционные системы и память

Эволюция операционных систем

В первых компьютерах в конце 40-х и до середины 50-х годов прошлого века программы непосредственно взаимодействовали с аппаратным обеспечением машины — операционных систем тогда еще не было. Эти компьютеры управлялись с пульта управления, состоящего из сигнальных ламп, тумблеров, устройства для ввода данных и принтера. Программы в машинных кодах и данные загружались через устройство ввода данных (например, устройство ввода с перфокарт). Если из-за ошибки в программе выполнение прекращалось, о возникновении сбойной ситуации сообщали аварийные сигнальные лампы. Чтобы определить причину ошибки, программист вручную должен был проверить состояние регистров процессора и основной памяти. Если программа успешно завершала свою работу, ее выходные данные распечатывались на принтере. Такой режим работы можно назвать последовательной обработкой данных. Это название отражает тот факт, что пользовательские программы исполнялись на компьютере последовательно. Все это сопровождалось массой неудобств, а выполнение пользовательской программы занимало слишком много времени. Для устранения этих недостатков были разработаны различные системные инструментальные программы. К ним относятся библиотеки функций, редакторы связей, загрузчики, отладчики и драйверы ввода-вывода, существующие в виде программного обеспечения, общедоступного для всех пользователей.

В дальнейшем для повышения эффективности работы была предложена концепция пакетной операционной системы. Первые пакетные операционные системы для машин типа IBM 701 были разработаны в середине 50-х годов компанией General Motors. Впоследствии эта концепция была усовершенствована и внедрена на машинах серии IBM 704. В начале 60-х годов некоторые поставщики разработали пакетные операционные системы для своих компьютеров. Одна из примечательных систем того времени — IBSYS фирмы IBM, разработанная для компьютеров 7090/7094 и оказавшая значительное влияние на другие системы.

Главная идея, лежащая в основе простых пакетных схем обработки, состоит в использовании программы, известной под названием монитор. Используя операционную систему такого типа, пользователь не имеет непосредственного доступа к машине. Вместо этого он передает свое задание на перфокартах или магнитной ленте оператору компьютера, который собирает разные задания в пакеты и помещает их в устройство ввода данных. Так информация передается монитору. Каждая программа составлена таким образом, что по завершении ее работы управление переходит к монитору, который автоматически загружает следующую программу. Задания в пакетах выстраиваются в очередь и выполняются без простоев максимально быстро. Кроме того, монитор помогает в подготовке программы к исполнению. В каждое задание включаются простые команды языка управления заданиями. Это специальный тип языка программирования, используемый для того, чтобы отдавать команды монитору. При этом монитор обеспечивал защиту памяти и во время работы программа пользователя не могла внести изменения в область памяти, в которой находился сам монитор. Монитор использовал таймер для снятия программ, превысивших выделенное для них время работы, а также только он мог выполнять некоторые привилегированные команды машинного уровня. Например, команды ввода-вывода контролировались монитором, и если программе пользователя нужно было произвести ввод-вывод, ей приходилось запрашивать для выполнения этих операций монитор. Но в первых операционных системах отсутствовали прерывания, которые придают системе большую гибкость при управлении ресурсами процессора.

Несмотря на то, что монитор занимал часть ресурсов компьютера, при этом он существенно повышал эффективность использования компьютера, что во времена дорогих компьютеров и дорогого процессорного времени все оценили очень быстро. Но и под управлением простой пакетной операционной системы при автоматическом выполнении заданий процессору часто приходилось простаивать. Поэтому разработчикам пришлось устранять и этот недостаток. Аппаратная часть совершенствовалась и появлялись новые возможности для повышения производительности процессора. Значительно возросшие объемы оперативной памяти позволяли размещать в ней несколько пользовательских программ и появилась возможность исполнять их параллельно, переключаясь с одной программы на другую. Теперь, когда одно из заданий ждет завершения операций ввода-вывода, процессор может переключиться на другое задание, для которого в данный момент ввод-вывод, скорее всего, не требуется. Поэтому изменилась и операционная система — появился многозадачный режим. Такой режим является основным в современных операционных системах.

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

Многозадачные операционные системы сложнее систем последовательной обработки заданий. Для того чтобы можно было обрабатывать несколько заданий одновременно, они должны находиться в основной памяти, при этом не обойтись без системы управления памятью. Кроме того, если к работе готовы несколько заданий, процессор должен решить, какое из них следует запустить, для чего необходимо было разработать алгоритм планирования заданий.

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

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

загрузка...
Сторінки, близькі за змістом