Гордеев А.В. Операционные системы (2-е изд., 2004) (1186250), страница 2
Текст из файла (страница 2)
Именно для студентов вузов, обучающихся по этим специальностям, и предназначаетсянастоящая книга. Однако она может быть востребована и студентами других специальностей, изучающих информатику и вычислительную технику, а также обычными подготовленными пользователями, желающими углубить свои познания вобласти операционных систем, ибо сегодня уже мало просто уметь работать накомпьютере, а желательно понимать, как он работает, как организуются в нем вычисления. Знания основных принципов организации вычислительных процессов,понимание проблем, которые при этом возникают, и методов их решения позволяют обдуманно подходить к использованию компьютера, предусмотреть и предотвратить нежелательные явления.
Помимо общетеоретических в книге рассмотреныи отдельные практические вопросы, описаны конкретные реализации отдельныхмодулей и подсистем.Учебный материал, ставший основой для настоящей книги, уже в течение нескольких лет читается студентам специальности 220100 в Санкт-Петербургском государственном университете аэрокосмического приборостроения. Материал построен с учетом упомянутого Государственного образовательного стандарта понаправлению «Информатика и вычислительная техника», регламентирующегосодержание дисциплины «Операционные системы». В основу издания легла переработанная первая часть учебника «Системное программное обеспечение», вышедшего в издательстве «Питер» в 2001 году и используемого в учебном процессе воВведениеКак известно, процесс проникновения информационных технологий практическиво все сферы человеческой деятельности продолжает развиваться и углубляться.Помимо уже привычных и широко распространенных персональных компьютеров, общее число которых достигло многих сотен миллионов, становится все больше и встроенных средств вычислительной техники.
Пользователей всей этой разнообразной вычислительной техники становится все больше, причем наблюдаетсяразвитие двух вроде бы противоположных тенденций. С одной стороны, информационные технологии все усложняются, и для их применения, и тем более дальнейшего развития, требуется иметь очень глубокие познания. С другой стороны,упрощаются интерфейсы взаимодействия пользователей с компьютерами.
Компьютеры и информационные системы становятся все более дружественными ипонятными даже для человека, не являющегося специалистом в области информатики и вычислительной техники. Это стало возможным прежде всего потому,что пользователи и их программы взаимодействуют с вычислительной техникойпосредством специального (системного) программного обеспечения — через операционную систему.Операционная система предоставляет интерфейсы и для выполняющихся приложений, и для пользователей. Программы пользователей, да и многие служебныепрограммы запрашивают у операционной системы выполнение тех операций, которые достаточно часто встречаются практически в любой программе. К такимоперациям, прежде всего, относятся операции ввода-вывода, запуск или остановкакой-нибудь программы, получение дополнительного блока памяти или его освобождение и многие другие.
Подобные операции невыгодно каждый раз программировать заново и непосредственно размещать в виде двоичного кода в теле программы, их удобнее собрать вместе и предоставлять для выполнения по запросу изпрограмм. Это и есть одна из важнейших функций операционных систем. Прикладные программы, да и многие системные обрабатывающие программы (такие,например, как системы программирования или системы управления базами данных), не имеют непосредственного доступа к аппаратуре компьютера, а взаимодействуют с ней только через обращения к операционной системе.
Пользователитакже путем ввода команд операционной системы или выбором возможных дей-10Введениемногих вузах. При работе над рукописью автор постарался учесть те советы и замечания от коллег по цеху, которые были получены после выхода в свет книги«Системное программное обеспечение».Напоследок хочется высказать самые теплые слова благодарности всем тем, ктопринял участие в подготовке этой книги к изданию. Это и Андрей Васильев, которого, к сожалению, уже больше нет среди нас, и его замечательные коллеги — сотрудники издательства «Питер». Своим кропотливым трудом, вниманием и доброжелательным отношением они помогли преодолеть возникшие трудности.
Работанад книгой — длительный процесс: хочется улучшить то одно, то другое, переписать или добавить, а времени свободного, да еще в достаточном количестве, каквсегда, нет. В связи с этим хочется также поблагодарить своих родных и близкихза долготерпение, доброжелательность и сердечную заботу в течение всего времени работы над рукописью. Без их поддержки эта книга, скорее всего, не состоялась бы.От издательстваВаши замечания, предложения, вопросы отправляйте по адресу электронной почты comp@piter.com (издательство «Питер», компьютерная редакция).Мы будем рады узнать ваше мнение!Подробную информацию о наших книгах вы найдете на web-сайте издательстваhttp://www. piter.com.лава 1.
Основные понятияЭта глава является вводной и, пожалуй, самой главной. Любой предмет имеет своиосновные понятия и положения. Не является исключением и дисциплина «Операционные системы». К основным понятиям, без которых практически невозможно по-настоящему изучить эту дисциплину, понять основные принципы организации вычислений, взаимодействия прикладных программ с операционной системойи пользователей с компьютерами, следует, прежде всего, отнести понятия вычислительных процессов и ресурсов, системной программы, супервизора, операционной среды, прерываний.
Мы также рассмотрим относительно новые понятия, ккоторым относятся поток выполнения и задача; они дополняют понятие вычислительного процесса и позволяют более эффективно организовать работу компьютера. Поскольку абсолютное большинство операционных систем обеспечивают возможность параллельного выполнения нескольких программ, мы познакомимся спонятием мультипрограммирования. Завершается глава обзором основных общепринятых классификаций.Назначение и функцииоперационных системОперационные системы относятся к системному программному обеспечению.
Какизвестно, все программное обеспечение разделяется на системное и прикладное.К системному программному обеспечению принято относить такие программыи комплексы программ, которые являются общими, без которых невозможно выполнение или создание других программ. История появления и развития системного программного обеспечения началась с того момента, когда люди осознали,что любая программа требует операций ввода-вывода данных.
Это произошло в далекие 50-е годы прошлого столетия. Собственно операционные системы появились чуть позже.Действительно, если мы не будем иметь возможности изменять исходные данныеи получать результаты вычислений, то зачем вообще эти вычисления? Очевидно,что исходные данные могут вводиться различными способами. На практике используются самые разнообразные устройства и методы.
Например, мы можем вво-12Глава 1. Основные понятиядить исходные значения с клавиатуры, задавать нужные действия или функции спомощью указателя мыши» считывать записи из файла, снимать оцифрованныезначения с датчиков и т. д. Часть исходных данных может быть передана в программу через область памяти, в которую предварительно другая программа занесла свои результаты вычислений. Способов много. Главное — выполнить в программе некоторые действия, связанные с получением исходных данных.Аналогично, и вывод результатов может быть организован, например, на соответствующие устройства и в форме, удобной для восприятия ее человеком. Либорезультаты расчетов будут отправляться программой на какие-нибудь исполнительные устройства, которые управляются компьютером.
Наконец, мы можеморганизовать запись полученных значений на некие устройства хранения данных(с целью их дальнейшей обработки).Программирование операций ввода-вывода относится к одной из самых трудоемких областей создания программного обеспечения. Здесь речь идет не об использовании операторов типа READ или WRITE в языках высокого уровня. Речь идет онеобходимости создать подпрограмму в машинном виде, уже готовую к выполнению на компьютере, а не написанную с помощью некоторой системы программирования (систем программирования тогда еще не было), подпрограмму, вместообычных вычислений управляющую тем устройством, которое должно участвовать в операциях ввода исходных данных или вывода результатов.