02.03.2024

Операционные системы читать онлайн. Студентам и школьникам книги операционные системы. М. Руссинович - Внутреннее устройство Microsoft Windows


Скачиваний: 8365

Самыми известными из всех операционных систем сейчас, несомненно, является семейство Windows корпорации Microsoft. Однако, несмотря на свою популярность, Windows не первая и не единственная операционная система в мире.


28.04.2014
Nathan Wallace, Anthony Sequeira - Windows® 2000 Registry

Скачиваний: 596

First and foremost, we’d like to thank Charlotte Carpentier, Acquisitions Editor at Coriolis. Also, special thanks to Greg Balas, who served as Project Editor, and Peggy Cantrell, who served as the Production Coordinator for the book.


27.04.2014
А. Чекмарев - Windows 7 Руководство администратора

Скачиваний: 12818

Руководство по операционной системе Microsoft Windows 7 ориентировано на опытных пользователей и сетевых администраторов. Раскрыты многочисленные возможности всех редакций Windows 7, подробно рассмотрены все аспекты использования системы: от установки до способов восстановления.


27.04.2014
М. Руссинович - Внутреннее устройство Microsoft Windows

Скачиваний: 9066

Шестое издание этой легендарной книги посвящено внутреннему устройству и алгоритмам работы основных компонентов операционной системы Microsoft Windows 7, а также Windows Server 2008 R2.


17.04.2014
Ричард Саймон-Microsoft Windows API. Справочник системного программиста

Скачиваний: 8967

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


17.04.2014
Arnold Robbins, Elbert Hannah, and Linda Lamb-Learning the vi and Vim Editors. 7th ed.

Скачиваний: 799

There"s nothing that hard-core Unix and Linux users are more fanatical about than their text editor. Editors are the subject of adoration and worship, or of scorn and ridicule, depending upon whether the topic of discussion is your editor or someone else"s. vi has been the standard editor for close to 30 years. Popular on Unix and Linux, it has a growing following on Windows systems, too. Most experienced system administrators citevi as their tool of choice. And since 1986, this book has been the guide for vi.


OS/2, VMS, VAX, Win32, UNIX — с этими операционными системами познакомится читатель «Введения в операционные системы» Д.В.Иртегова. Архитектура ОС, распределение памяти, файловые системы, обеспечение безопасности и многое другое рассматривается в этом учебном пособии.

Современный пользователь конечно же, знаком с операционными системами семейства Win32, но вряд ли знает о существовании самого этого семейства, слышал, возможно, о чём-то под названием Linux, но мешает «в кучу» все UNIX-образные ОС, не делая между ними разницы, вряд ли помнит о такой системе, как OS/2 и уж точно не знает, что именно ей обязана существованием нынешняя ветвь семейства MS Windows. О такой же крайне специфической для банков и оборонных структур ОС, как VMS, он уж точно не имеет ни малейшего представления. Учебное пособие «Введение в операционные системы» восполняет этот пробел в образовании читателя, рассказывая об архитектуре всех этих ОС, их файловых системах, работе с аппаратурой и событиями, реализацией многозадачности и обработке транзакций, системах безопасности операционных систем и прочих вопросах, совершенно необходимых для будущих специалистов в области вычислительной техники.

Сегодня трудно себе представить современного человека не владеющим компьютером. А для эффективной работы с этой техникой пользователю нужно разбираться в различных форматах файлов Microsoft Windows. К наиболее популярным текстовым, графическим и звуковым форматам относятся такие, как TeX, PDF, TIFF, HTML, GIF, AVI, MPEG, JPEG, CGML, MIME, QuickTime, PNDZIP, VRML, XXE, UUE, WAVE и т.п.

Книга повествует о том, как правильно распаковываются файлы, которые подвергались сжатию различными архиваторами, как правильно производить кодировку и декодирование данных. Изучив справочник «Форматы файлов Microsoft Windows XP» (автор Борис Леонтьев), читатель научится определять «следы» тех утилит, которые воздействовали на файлы, попавшие в его компьютер.

Отличительной особенностью этого учебника является грамотно построенное сочетание теоретических основ построения операционной системы с реализованными на практике примерами. В третьем издании этого учебника подробно освещены алгоритмы управления памятью. Более детально изложены основы передачи сообщений, межпроцессорного взаимодействия, подробно описан каждый из процессов. Рассмотрены такие понятия как семафоры, мониторы, драйверы устройств. Уделено внимание реализации ввода-вывода информации, разработке файловых систем, обеспечение защиты и безопасности данных.

Учебник Э. Таненбаум, А. Вудхалл «Операционные системы. Разработка и реализация» дополнительно укомплектован компакт-диском, на который записан исходный код работающей UNIX-совместимой ОС MINIX. Это дает возможность детально рассмотреть на практике особенности работы каждого из ее компонентов и операционной системы как единого целого.

В издании, предназначенном для интересующихся современными программными разработками и развитием продукции Microsoft, рассказывается о приложениях на платформе 2003. Информация собрана Ю. Купцевичем «из первых рук» – «Альманах программиста» создан на базе журналов, авторами которых являются сами разработчики и тестеры обсуждаемых приложений.

Данное учебное пособие выдерживает уже второе издание и является официально рекомендованным Министерством образования России учебником. В нём последовательно рассказывается об устройстве систем UNIX – их архитектуре, интерфейсах, подпрограммах, взаимодействии с аппаратным обеспечением и сетевом взаимодействии. Книга «Операционная система UNIX» Робачевского и Немнюгина обновлена в соответствии с требованиями времени и будет полезна профессиональным программистам и системным администраторам.

Издание посвящено базовым механизмам работы ОС Windows. В книге рассматриваются все этапы выполнения операций, начиная с обращения к регистру процессора и заканчивая выводом на экран сообщения графического интерфейса. Много внимания уделено переходам системы из одного режима в другой, причинам появлений «синих экранов смерти», особенностям файловой системы NTFS. Книга Руссиновича «Внутреннее устройство Microsoft Windows: Windows Server 2003, Windows XP, Windows 2000. Мастер-класс» – это сборник полезнейшей для системных администраторов крупных организаций и сотрудников сервисных центров информации.

Данный учебник был создан преподавателями Санкт-Петербургского государственного университета аэрокосмического приборостроения по материалам одноимённого курса. Книга отличается объёмностью и разносторонностью – в неё включено рассмотрение вопросов от самых простых, в частности, от базовых понятий системного программирования, до довольно таки сложных. Например, до особенностей микроархитектуры процессоров х86. Соответствие государственным стандартом позволяет использовать «Системное программное обеспечение» Гордеева и Молчанова как пособие для подготовки к проверкам знаний. Однако основная ценность книги – в её полезности в практической деятельности системного администратора или программиста.

Книга описывает возможности и уязвимости системы Windows 2000, которые мало кому известны и редко когда используются. Она состоит из нескольких больших глав, предназначенных для совершенствования навыков профессионалов, и приложений со списками команд Kernel Debugger, функций API ядра и элементами подпрограмм ОС. В «Недокументированных возможностях Windows 2000» Свен Шрайбер рассказывает о работе с интерфейсом Native API, использовании механизмов отладки Windows 2000 и исследовании её памяти, об обращениях к ядру системы из пользовательского режима, разработке драйверов режима ядра и многом другом. Так что книга будет полезна специалистам, желающим создавать максимально эффективные приложения и готовым разбираться в трудах Microsoft на предельно глубоком уровне.

Написанное профессиональным разработчиком справочно-учебное пособие по Windows Embedded будет полезно не только начинающим, но и профессиональным программистам, так как содержит весь широкий спектр практической информации — от «новичковых советов» до профессиональных секретов автора.

Microsoft Windows Embedded 2009 — наиболее устойчивая и распространённая на сегодняшний день из всех встраиваемых Windows-систем, созданная на основе Windows XP. При всей своей схожести с XP, она тем не менее достаточно отличается от своей прародительницы, чтобы изучение программирования под неё требовало отдельного изучения. Книга Станислава Павлова «Основы Windows Embedded Standard 2009» освещает не только технические вопросы, встающие перед разработчиком по для Windows Embedded, но и иную практическую информацию, о которой автор учебника пишет, исходя из личного профессионального опыта.

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

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

Одобренная Министерством образования, эта книга предназначена для студентов специальности «Информатика и вычислительная техника» в качестве учебного пособия по предмету «Операционные системы» и аспирантов, занимающихся теоретической стороной информатики в её изначальном понимании, то есть «науки об обработке информации». Здесь вы не найдёте информации о сборке ядра системы под какой-то конкретный процессор, настройке режимов видеокарты или оптимизации файловой системы, управлении ролями пользователей и групп — в отличие от множества практикумов и справочников, посвящённых Windows или Unix, данное учебное пособие рассматривает с сугубо теоретической точки зрения о концепции операционных систем как таковых. Фундаментальные принципы построения ОС, рассматриваемые в этой книге, справедливы для практически всех существующих на сегодняшний день операционных систем.

Практикующим IT-специалистам учебник «Сетевые операционные системы» Натальи и Виктора Олиферов также может быть полезен как источник «академических» знаний при прохождении собеседования в компаниях, где в первую очередь ориентируются на академичность официального образования, нежели на практические навыки соискателей.

1 Начальные сведения об операционных системах

1.1 Назначение и функции операционных систем

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

Предоставляет пользователю или программисту вместо реальной аппаратуры компьютера расширенной виртуальной машины;

Повышает эффективность использования компьютера путем рационального управления его ресурсами в соответствии с некоторым критерием.

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

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

Функции операционной системы работают так же, как и остальное программное обеспечение – реализуются в виде отдельных программ или набора программ, исполняющихся процессов;

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

Управление ресурсами включает решение следующих общих, не зависящих от типа ресурса задач:

Планирование ресурса – то есть определение, какому процессу, когда и в каком количестве (если ресурс может выделяться частями) следует выделить данный ресурс;

Удовлетворение запросов на ресурсы;

Отслеживание состояния и учет использования ресурса – то есть поддержание оперативной информации о том, занят или свободен ресурс и какая доля ресурса уже распределена;

Разрешение конфликтов между процессами .

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

1.2 История развития операционных систем

Обычно историю развития операционных систем связывают с историей развития компьютеров. Первая идея компьютера была предложена английским математиком Чарльзом Бэббиджем (Charles Babbage) в середине девятнадцатого века. Им была разработана так называемая механическая «аналитическая машина», которая правда так и не заработала должным образом. Далее представлены поколения компьютеров и их связь с операционными системами.

Первое поколение 1945-1955

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

Второе поколение 1955-1965

Основа компьютеров транзисторы и системы пакетной обработки. Характеризовались колодами перфокарт и устройствами для записывания магнитных лент. В основном программировали на языках Фортран и Ассемблер для операционной системы Fortran Monitor System (FMS) и IBSYS.

Третье поколение 1965-1980

Период характеризуется появлением интегральных микросхем, а также многозадачностью или, как её называют по другому, мультипрограммированием. Фирма IBM выпускает различные серии машин, начиная с IBM/360. Для них была написана операционная система OS/360, которая примерно в 1000 раз превышала по величине FMS второго поколения. На этом этапе появляется промышленная реализация многозадачности – способа организации вычислительного процесса, при котором в памяти компьютера находилось одновременно несколько программ, попеременно выполняющихся на одном процессоре.

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

Четвёртое поколение 1980-наши дни

Этот период связан с появлением больших интегральных схем. В 1974 году компания Intel выпустила первый универсальный 8-разрядный процессор Intel 8080. В начале 80-х корпорация IBM разработала IBM PC – персональный компьютер. В тоже время появляется первая версия MS-DOS. Все разработанные до этого момента операционные системы поддерживали только текстовый режим общения с пользователем.

Первая попытка сделать дружественный графический интерфейс была реализована на Apple Macintosh. Под влиянием её успехов корпорация Microsoft выпускает графическую оболочку для MS-DOS – Windows. А с 1995 года вышла в свет Windows 95, которая стала автономной системой. В дальнейшем, на базе Windows 95 и другой системы Windows NT были разработаны существующие на настоящий момент операционные системы – Windows 2000, XP, Vista и другие.

1.3 Классификация операционных систем

Операционных систем очень много и не всем они известны. Далее рассмотрено 7 видов различных операционных систем по уровню от большого к малому.

Операционные системы мэйнфреймов

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

Операционные системы для мэйнфреймов в основном ориентированы на обработку множества одновременных заданий, большинству из которых требуются огромное количество операций ввода-вывода. Система должна отвечать на тысячи запросов в секунду. Примером является OS/390, произошедшая от операционной системы 3-го поколения OS/360.

Серверные операционные системы

Данные операционные системы работают на серверах, которые представляют из себя персональный компьютер, рабочую станцию или даже мэйнфрейм. Серверы предоставляют возможность работы с печатающими устройствами, файлами или Интернетом. К таким операционным системам относятся Unix, Linux, Windows 2003 Server и др.

Многопроцессорные операционные системы

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

Операционные системы для персональных компьютеров

Главный критерий этих систем – удобный интерфейс для одного пользователя. Наиболее известные системы: серии Windows 98, 2000, XP, Vista; Macintosh, Linux.

Операционные системы реального времени

Главный параметр этих систем – время. В системах управления промышленным процессом необходимо четко синхронизировать время работы конвейера, различных промышленных роботов. Это жесткая система реального времени. Есть и гибкие системы реального времени – в ней допустимы пропуски сроков выполнения операции, например мультимедийные системы. К операционным системам реального времени относятся VxWorks и QNX.

Встроенные операционные системы

К ним относятся операционные системы «карманных компьютеров» PDA (Personal Digital Assistant – персональный цифровой помощник). Кроме того, встроенные системы работают на машинах, в телевизорах, мобильных телефонах. В этих операционных системах обычно присутствуют все характеристики операционных систем реального времени с ограничением памяти, мощности и т.п. Примеры систем – PalmOS, Windows CE.

Операционные системы для смарт-карт

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

1.4 Обзор аппаратного обеспечения компьютера

Операционная система тесно связана с оборудованием компьютера, на котором она должна работать. Аппаратное обеспечение влияет на набор команд операционной системы и управление его ресурсами. Концептуально простой компьютер можно представить в виде модели, показанной на рисунке 1 . Такая структура использовалась на первых моделях IBM PC.

Рисунок 1 – Некоторые компоненты персонального компьютера


На рисунке центральный процессор, память, устройства ввода-вывода соединены системной шиной, по которой они обмениваются информацией.

Процессор

«Мозгом» компьютера является центральный процессор (CPU – Central Processing Unit). Он выбирает из памяти команды и выполняет их. Обычный цикл работы процессора выглядит так: читается первая команда из памяти, декодируется для определения ее типа и операндов, выполняет команду, затем считывает, декодирует последующие команды. Таким образом осуществляется выполнение программ.

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

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

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

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

Память

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

Система памяти конструируется в виде иерархии слоев , которые иллюстрируются на рисунке 2. По мере продвижение по иерархии сверху вниз возрастают два параметра: время доступа, объём памяти.

Верхний слой состоит из внутренних регистров CPU, поэтому при доступе к ним не возникает задержек. Внутренние регистры хранят менее 1Кб информации. Программы могут управлять регистрами без вмешательства аппаратуры. Доступ к регистрам быстрее всего – несколько наносекунд.

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


Рисунок 2 – Иерархическая структура памяти


Далее следует оперативная память ОЗУ (RAM – Random Acces Memory или память с произвольным доступом) – главная рабочая область запоминающего устройства машины. Все запросы CPU, которые не могут быть выполнены кэшпамятью, поступают для обработки в ОЗУ. Объёмы от сотен мегабайт до нескольких гигабайт. Время доступа – десятки наносекунд.

Следующим идёт магнитный диск. Дисковая память на два порядка дешевле ОЗУ в пересчете на бит и на два порядка больше по величине. У диска есть одна проблема – случайный доступ к данным на нем занимает примерно на три порядка больше времени. Причиной низкой скорости жестких дисков (HDD) является то, что диск представляет собой механическую конструкцию. Он состоит из одной или нескольких металлических пластин, вращающихся с определенными скоростями, например 7200 об/мин. Объёмы дисков сейчас стремительно растут, в продаже для большинства пользователей находятся диски с сотнями гигабайт. Время доступа – не менее 10 мкс.

Магнитная лента часто используется для создания резервных копий HDD или для хранения очень больших наборов данных. Сейчас, конечно редко, где можно встретить применение магнитных лент, но всё же они ещё не вышли из употребления. К уровню магнитной ленты также можно отнести CD, DVD диски и флэш-память. Время доступа измеряется секундами.

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

Устройства ввода-вывода

Операционная система взаимодействует с устройствами ввода-вывода как с ресурсами. Устройства ввода-вывода обычно состоят из контроллера и самого устройства.

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

Следующей частью является само устройство. Устройства имеют достаточно простые интерфейсы, потому что их возможности невелики и их нужно привести к единому стандарту. Единый стандарт необходим, например чтобы каждый IDE контроллер диска (Integrated Drive Electronics) мог управлять любым IDE диском. IDE интерфейс является стандартным для дисков на компьютерах с процессором Pentium, а также на других компьютерах. Так как настоящий интерфейс устройства скрыт с помощью контроллера, то операционная система видит только интерфейс контроллера, который может сильно отличаться от интерфейса самого устройства.

Поскольку все виды контроллеров отличаются, то для них требуется разное программное обеспечение. Программа, которая общается с контроллером, – драйвер устройства. Каждый производитель контроллеров должен поставлять драйверы для поддерживаемых операционных систем. Для использования драйвера его нужно установить в операционную систему так, чтобы он мог работать в режиме ядра. Есть три способа установки драйвера в ядро :

Заново скомпоновать ядро вместе с новым драйвером и затем перезагрузить операционную систему (так работает множество операционных систем Unix);

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

Операционная система может принимать новые драйверы, не прерывая работы, и оперативно устанавливать их, не нуждаясь в перезагрузке. Этот способ становится все более и более распространенным. Такие устройства как шины USB, IEEE 1394 всегда нуждаются в динамически загружаемых драйверах.

Ввод-вывод данных можно осуществлять тремя различными способами .

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

Драйвер запускает устройство и просит его выдать прерывания по окончании ввода-вывода; после этого драйвер возвращает управление операционной системе, и она начинает выполнять другие задания. Когда контроллер обнаруживает окончание передачи данных, он генерирует прерывание о завершении операции. Процесс ввода-вывода, использующий прерывания, состоит из четырех шагов (Рисунок 3). На первом шаге драйвер передает команду контроллеру, записывая информацию в регистры устройств. Затем контроллер запускает устройство. Когда контроллер заканчивает чтение или запись того количества байтов, которое ему было указано передать, он посылает сигнал микросхеме контроллера прерываний, используя определенные провода шины. Это шаг второй. На третьем шаге если контроллер прерываний готов к обработке прерываний, то он подает сигнал на определенный контакт CPU, информируя его таким образом. На четвертом шаге контроллер прерываний вставляет номер устройства на шину, чтобы центральный процессор мог узнать, какое устройство завершило работу.

Третий метод ввода-вывода информации заключается в использовании специального контролера прямого доступа к памяти DMA (Direct Memory Access). DMA управляет потоком битов между оперативной памятью и некоторыми контролерами без вмешательства CPU. Процессор обращается к микросхеме DMA, сообщает ей число байтов для передачи, а также адрес устройства и памяти, направление передачи данных. По завершении работы DMA инициирует прерывание, которое обрабатывается обычным порядком.


Рисунок 3 – Действия, выполняемые при запуске устройства ввода-вывода и получении прерывания


Шины

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

В этой системе 8 шин (шина кэша, локальная шина, шина памяти, PCI, SCSI, USB, IDE, ISA), каждая со своей скоростью передачи данных и своими функциями. В операционной системе для управления компьютером должны находиться сведения обо всех этих шинах.

Центральный процессор по локальной шине передает данные микросхеме PCIмоста, – который в свою очередь обращается к памяти по выделенной шине. Система Pentium I имеет кэш первого уровня (L1) встроенный в процессор и намного больший кэш второго уровня (L2), подключенный к процессору отдельной шиной кэша. Шина IDE служит для присоединения периферийных устройств к системе (CD-ROM, жесткий диск).


Рисунок 4 – Структура системы Pentium


Шина USB (Universal Serial Bus) предназначена для присоединения к компьютеру дополнительных устройств ввода-вывода, таких как клавиатура, мышь, принтер, флэш-память и т.д. С течением времени появляются и добавляются новые более быстрые шины.

Андрей Робачевский

Операционная система UNIX

Выражение признательности

Работая над книгой, я много раз продумывал содержание этого приятного раздела, каждый раз добавляя в него новые и новые имена людей, без помощи которых эта книга вряд ли увидела бы свет.

В первую очередь это заслуга директора издательства "BHV–Санкт-Петербург" Вадима Сергеева и моего коллеги, сотрудника Вузтелекомцентра и автора замечательного справочника "Желтые страницы Internet. Русские ресурсы" Алексея Сигалова. Именно они убедили меня в том, что такая книга окажется полезной и вдохновили взяться за перо.

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

Без помощи Кирилла Щукина книге грозила опасность увидеть свет без иллюстраций, что вряд ли сделало бы ее более ясной. Его терпение и профессионализм позволили превратить туманные наброски в полноценные схемы, от которых книга значительно выиграла.

Я неоднократно обращался за советом к экспертам по UNIX и прежде всего к моему коллеге Константину Федорову. Его ценные замечания и рекомендации помогли мне довести книгу до ее настоящего вида.

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

Я также хотел бы выразить глубокую признательность рецензентам этой книги - зав. кафедрой "Вычислительная техника" Санкт-Петербургского государственного электротехнического университета д.т.н. профессору Д.В. Пузанкову и зав. кафедрой "Информационные и управляющие системы" Санкт-Петербургского государственного Технического университета д.т.н. профессору И.Г. Черноруцкому за полезные замечания.

Я хотел бы также поблагодарить зав. редакции издательства "BHV-Санкт-Петербург" Елизавету Кароник, которая первой ознакомилась с рукописью и вынесла положительный вердикт, за кредит доверия и координацию работ по созданию книги. Я хочу выразить благодарность Татьяне Темкиной за ее великолепную работу по редактированию книги. Случалось, что отдельные страницы рукописи содержали меньше основного материала, чем редакторской правки, с которой я, как правило, всегда соглашался.

Я не могу не выразить признательность моим коллегам по работе Владимиру Парфенову, Юрию Гугелю, Юрию Кирчину, Нине Рубиной, дружеская поддержка которых была так кстати.

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

О книге «Операционная система UNIX»

Посвящается моим близким

Назначение книги

Данная книга не является заменой справочников и различных руководств по операционной системе UNIX. Более того, сведения, представленные в книге, подчас трудно найти в документации, поставляемой с операционной системой. Эти издания насыщены практическими рекомендациями, скрупулезным описанием настроек тех или иных подсистем, форматов вызова команд и т.п. При этом за кадром часто остаются такие вопросы, как внутренняя архитектура отдельных компонентов системы, их взаимодействие и принципы работы. Без знания этой "анатомии" работа в операционной системе превращается в использование заученных команд, а неизбежные ошибки приводят к необъяснимым последствиям. С другой стороны, в данной книге вопросам администрирования UNIX, настройке конкретных подсистем и используемым командам уделено значительно меньше внимания. Цель данной книги заключается в изложении основ организации операционной системы UNIX. Следует иметь в виду, что именем UNIX обозначается значительное семейство операционных систем, каждая из которых имеет свое название и присущие только ей особенности. В этой книге сделана попытка выделить то общее, что составляет "генотип" UNIX, a именно: базовый пользовательский и программный интерфейсы, назначение основных компонентов, их архитектуру и взаимодействие, и на основе этого представить систему в целом. В то же время там, где это имеет значение, приводятся ссылки на конкретную версию UNIX. Для иллюстрации отдельных положений использовались следующие операционные системы: Solaris 2.5 фирмы Sun Microsystems, SCO ODT 5.0 фирмы Santa Cruz Operation, BSDi/386 фирмы Berkeley Software Design.

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

Книга может оказаться полезной при подготовке ряда лекционных программ по операционной системе UNIX и основам организации операционных систем в целом. Материал главы 1 является хорошей основой для вводного курса по UNIX. В нем представлены основные понятия и организация операционной системы в целом. В этой же главе приведены основные сведения о пользовательском интерфейсе и языке программирования командного интерпретатора shell.

Материал главы 2 может быть использован в курсах по программированию. Подробное обсуждение основных системных вызовов и библиотечных функций дает достаточно полное представление о программном интерфейсе этой операционной системы. Приведенные примеры иллюстрируют обсуждаемые вопросы и могут найти свое отражение в лабораторном практикуме.

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

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

На кого рассчитана эта книга?

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

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

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

Принятые обозначения

Системные вызовы, библиотечные функции, команды shell выделены в тексте курсивом, например open(2) , cat(1) или printf(3S) . В скобках указывается раздел электронного справочника man(1) (описание справочника приведено в приложении А).

Структуры данных, переменные и внутренние функции подсистем ядра, исходные тексты программ и примеры работы в командной строке напечатаны шрифтом фиксированной ширины. Например, d_open(), sleep() или пример программы:

В примерах работы в командной строке ввод пользователя выделен полужирным шрифтом фиксированной ширины, например:

$ passwd

Enter old password:

Имена файлов выделены полужирным начертанием, например /etc/passwd или .

Клавиши клавиатуры показаны курсивом и заключены в угловые скобки, например < Del > или < Ctrl >+< C > (в последнем случае показана комбинация клавиш).

Текущая страница: 1 (всего у книги 12 страниц) [доступный отрывок для чтения: 8 страниц]

А. Ю. Кручинин
Операционные системы

1 Начальные сведения об операционных системах

1.1 Назначение и функции операционных систем

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

Предоставляет пользователю или программисту вместо реальной аппаратуры компьютера расширенной виртуальной машины;

Повышает эффективность использования компьютера путем рационального управления его ресурсами в соответствии с некоторым критерием.

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

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

Функции операционной системы работают так же, как и остальное программное обеспечение – реализуются в виде отдельных программ или набора программ, исполняющихся процессов;

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

Управление ресурсами включает решение следующих общих, не зависящих от типа ресурса задач:

Планирование ресурса – то есть определение, какому процессу, когда и в каком количестве (если ресурс может выделяться частями) следует выделить данный ресурс;

Удовлетворение запросов на ресурсы;

Отслеживание состояния и учет использования ресурса – то есть поддержание оперативной информации о том, занят или свободен ресурс и какая доля ресурса уже распределена;

Разрешение конфликтов между процессами .

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

1.2 История развития операционных систем

Обычно историю развития операционных систем связывают с историей развития компьютеров. Первая идея компьютера была предложена английским математиком Чарльзом Бэббиджем (Charles Babbage) в середине девятнадцатого века. Им была разработана так называемая механическая «аналитическая машина», которая правда так и не заработала должным образом. Далее представлены поколения компьютеров и их связь с операционными системами.

Первое поколение 1945-1955

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

Второе поколение 1955-1965

Основа компьютеров транзисторы и системы пакетной обработки. Характеризовались колодами перфокарт и устройствами для записывания магнитных лент. В основном программировали на языках Фортран и Ассемблер для операционной системы Fortran Monitor System (FMS) и IBSYS.

Третье поколение 1965-1980

Период характеризуется появлением интегральных микросхем, а также многозадачностью или, как её называют по другому, мультипрограммированием. Фирма IBM выпускает различные серии машин, начиная с IBM/360. Для них была написана операционная система OS/360, которая примерно в 1000 раз превышала по величине FMS второго поколения. На этом этапе появляется промышленная реализация многозадачности – способа организации вычислительного процесса, при котором в памяти компьютера находилось одновременно несколько программ, попеременно выполняющихся на одном процессоре.

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

Четвёртое поколение 1980-наши дни

Этот период связан с появлением больших интегральных схем. В 1974 году компания Intel выпустила первый универсальный 8-разрядный процессор Intel 8080. В начале 80-х корпорация IBM разработала IBM PC – персональный компьютер. В тоже время появляется первая версия MS-DOS. Все разработанные до этого момента операционные системы поддерживали только текстовый режим общения с пользователем.

Первая попытка сделать дружественный графический интерфейс была реализована на Apple Macintosh. Под влиянием её успехов корпорация Microsoft выпускает графическую оболочку для MS-DOS – Windows. А с 1995 года вышла в свет Windows 95, которая стала автономной системой. В дальнейшем, на базе Windows 95 и другой системы Windows NT были разработаны существующие на настоящий момент операционные системы – Windows 2000, XP, Vista и другие.

1.3 Классификация операционных систем

Операционных систем очень много и не всем они известны. Далее рассмотрено 7 видов различных операционных систем по уровню от большого к малому.

Операционные системы мэйнфреймов

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

Операционные системы для мэйнфреймов в основном ориентированы на обработку множества одновременных заданий, большинству из которых требуются огромное количество операций ввода-вывода. Система должна отвечать на тысячи запросов в секунду. Примером является OS/390, произошедшая от операционной системы 3-го поколения OS/360.

Серверные операционные системы

Данные операционные системы работают на серверах, которые представляют из себя персональный компьютер, рабочую станцию или даже мэйнфрейм. Серверы предоставляют возможность работы с печатающими устройствами, файлами или Интернетом. К таким операционным системам относятся Unix, Linux, Windows 2003 Server и др.

Многопроцессорные операционные системы

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

Операционные системы для персональных компьютеров

Главный критерий этих систем – удобный интерфейс для одного пользователя. Наиболее известные системы: серии Windows 98, 2000, XP, Vista; Macintosh, Linux.

Операционные системы реального времени

Главный параметр этих систем – время. В системах управления промышленным процессом необходимо четко синхронизировать время работы конвейера, различных промышленных роботов. Это жесткая система реального времени. Есть и гибкие системы реального времени – в ней допустимы пропуски сроков выполнения операции, например мультимедийные системы. К операционным системам реального времени относятся VxWorks и QNX.

Встроенные операционные системы

К ним относятся операционные системы «карманных компьютеров» PDA (Personal Digital Assistant – персональный цифровой помощник). Кроме того, встроенные системы работают на машинах, в телевизорах, мобильных телефонах. В этих операционных системах обычно присутствуют все характеристики операционных систем реального времени с ограничением памяти, мощности и т.п. Примеры систем – PalmOS, Windows CE.

Операционные системы для смарт-карт

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

1.4 Обзор аппаратного обеспечения компьютера

Операционная система тесно связана с оборудованием компьютера, на котором она должна работать. Аппаратное обеспечение влияет на набор команд операционной системы и управление его ресурсами. Концептуально простой компьютер можно представить в виде модели, показанной на рисунке 1 . Такая структура использовалась на первых моделях IBM PC.


Рисунок 1 – Некоторые компоненты персонального компьютера


На рисунке центральный процессор, память, устройства ввода-вывода соединены системной шиной, по которой они обмениваются информацией.

Процессор

«Мозгом» компьютера является центральный процессор (CPU – Central Processing Unit). Он выбирает из памяти команды и выполняет их. Обычный цикл работы процессора выглядит так: читается первая команда из памяти, декодируется для определения ее типа и операндов, выполняет команду, затем считывает, декодирует последующие команды. Таким образом осуществляется выполнение программ.

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

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

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

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

Память

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

Система памяти конструируется в виде иерархии слоев , которые иллюстрируются на рисунке 2. По мере продвижение по иерархии сверху вниз возрастают два параметра: время доступа, объём памяти.

Верхний слой состоит из внутренних регистров CPU, поэтому при доступе к ним не возникает задержек. Внутренние регистры хранят менее 1Кб информации. Программы могут управлять регистрами без вмешательства аппаратуры. Доступ к регистрам быстрее всего – несколько наносекунд.

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


Рисунок 2 – Иерархическая структура памяти


Далее следует оперативная память ОЗУ (RAM – Random Acces Memory или память с произвольным доступом) – главная рабочая область запоминающего устройства машины. Все запросы CPU, которые не могут быть выполнены кэшпамятью, поступают для обработки в ОЗУ. Объёмы от сотен мегабайт до нескольких гигабайт. Время доступа – десятки наносекунд.

Следующим идёт магнитный диск. Дисковая память на два порядка дешевле ОЗУ в пересчете на бит и на два порядка больше по величине. У диска есть одна проблема – случайный доступ к данным на нем занимает примерно на три порядка больше времени. Причиной низкой скорости жестких дисков (HDD) является то, что диск представляет собой механическую конструкцию. Он состоит из одной или нескольких металлических пластин, вращающихся с определенными скоростями, например 7200 об/мин. Объёмы дисков сейчас стремительно растут, в продаже для большинства пользователей находятся диски с сотнями гигабайт. Время доступа – не менее 10 мкс.

Магнитная лента часто используется для создания резервных копий HDD или для хранения очень больших наборов данных. Сейчас, конечно редко, где можно встретить применение магнитных лент, но всё же они ещё не вышли из употребления. К уровню магнитной ленты также можно отнести CD, DVD диски и флэш-память. Время доступа измеряется секундами.

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

Устройства ввода-вывода

Операционная система взаимодействует с устройствами ввода-вывода как с ресурсами. Устройства ввода-вывода обычно состоят из контроллера и самого устройства.

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

Следующей частью является само устройство. Устройства имеют достаточно простые интерфейсы, потому что их возможности невелики и их нужно привести к единому стандарту. Единый стандарт необходим, например чтобы каждый IDE контроллер диска (Integrated Drive Electronics) мог управлять любым IDE диском. IDE интерфейс является стандартным для дисков на компьютерах с процессором Pentium, а также на других компьютерах. Так как настоящий интерфейс устройства скрыт с помощью контроллера, то операционная система видит только интерфейс контроллера, который может сильно отличаться от интерфейса самого устройства.

Поскольку все виды контроллеров отличаются, то для них требуется разное программное обеспечение. Программа, которая общается с контроллером, – драйвер устройства. Каждый производитель контроллеров должен поставлять драйверы для поддерживаемых операционных систем. Для использования драйвера его нужно установить в операционную систему так, чтобы он мог работать в режиме ядра. Есть три способа установки драйвера в ядро :

Заново скомпоновать ядро вместе с новым драйвером и затем перезагрузить операционную систему (так работает множество операционных систем Unix);

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

Операционная система может принимать новые драйверы, не прерывая работы, и оперативно устанавливать их, не нуждаясь в перезагрузке. Этот способ становится все более и более распространенным. Такие устройства как шины USB, IEEE 1394 всегда нуждаются в динамически загружаемых драйверах.

Ввод-вывод данных можно осуществлять тремя различными способами .

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

Драйвер запускает устройство и просит его выдать прерывания по окончании ввода-вывода; после этого драйвер возвращает управление операционной системе, и она начинает выполнять другие задания. Когда контроллер обнаруживает окончание передачи данных, он генерирует прерывание о завершении операции. Процесс ввода-вывода, использующий прерывания, состоит из четырех шагов (Рисунок 3). На первом шаге драйвер передает команду контроллеру, записывая информацию в регистры устройств. Затем контроллер запускает устройство. Когда контроллер заканчивает чтение или запись того количества байтов, которое ему было указано передать, он посылает сигнал микросхеме контроллера прерываний, используя определенные провода шины. Это шаг второй. На третьем шаге если контроллер прерываний готов к обработке прерываний, то он подает сигнал на определенный контакт CPU, информируя его таким образом. На четвертом шаге контроллер прерываний вставляет номер устройства на шину, чтобы центральный процессор мог узнать, какое устройство завершило работу.

Третий метод ввода-вывода информации заключается в использовании специального контролера прямого доступа к памяти DMA (Direct Memory Access). DMA управляет потоком битов между оперативной памятью и некоторыми контролерами без вмешательства CPU. Процессор обращается к микросхеме DMA, сообщает ей число байтов для передачи, а также адрес устройства и памяти, направление передачи данных. По завершении работы DMA инициирует прерывание, которое обрабатывается обычным порядком.


Рисунок 3 – Действия, выполняемые при запуске устройства ввода-вывода и получении прерывания


Шины

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

В этой системе 8 шин (шина кэша, локальная шина, шина памяти, PCI, SCSI, USB, IDE, ISA), каждая со своей скоростью передачи данных и своими функциями. В операционной системе для управления компьютером должны находиться сведения обо всех этих шинах.

Центральный процессор по локальной шине передает данные микросхеме PCIмоста, – который в свою очередь обращается к памяти по выделенной шине. Система Pentium I имеет кэш первого уровня (L1) встроенный в процессор и намного больший кэш второго уровня (L2), подключенный к процессору отдельной шиной кэша. Шина IDE служит для присоединения периферийных устройств к системе (CD-ROM, жесткий диск).


Рисунок 4 – Структура системы Pentium


Шина USB (Universal Serial Bus) предназначена для присоединения к компьютеру дополнительных устройств ввода-вывода, таких как клавиатура, мышь, принтер, флэш-память и т.д. С течением времени появляются и добавляются новые более быстрые шины.




© 2024
seagun.ru - Сделай потолок. Освещение. Электропроводка. Карниз