Главная страница
Навигация по странице:

  • Утилиты сервисного обслуживания

  • Систе́ма управле́ния ба́зами да́нных (СУБД

  • Лекция 1 Введение в системное программное обеспечение


    Скачать 0.9 Mb.
    НазваниеЛекция 1 Введение в системное программное обеспечение
    Дата14.05.2022
    Размер0.9 Mb.
    Формат файлаdoc
    Имя файлаf66a995.doc
    ТипЛекция
    #528406
    страница2 из 10
    1   2   3   4   5   6   7   8   9   10

    Утилиты


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

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

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


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

    Файловая система связывает носитель информации, с одной стороны, и API для доступа к файлам — с другой. Когда прикладная программа обращается к файлу, она не имеет никакого представления о том, каким образом расположена информация в конкретном файле, также, как и на каком физическом типе носителя (CD, жёстком диске, магнитной ленте или блоке флеш-памяти) он записан. Всё, что знает программа — это имя файла, его размер и атрибуты. Эти данные она получает от драйвера файловой системы. Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске).

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

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

    Система управления базами данных


    Систе́ма управле́ния ба́зами да́нных (СУБД) — специализированная программа (чаще комплекс программ), предназначенная для организации и ведения базы данных. Для создания и управления информационной системой СУБД необходима в той же степени, как для разработки программы на алгоритмическом языке необходим транслятор.

    Лекция 2: Понятие операционной системы или среды

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




    Содержание


    • 1 Функции

    • 2 Объекты ядра ОС

    • 3 Понятие операционной системы

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

      • 4.1 Пакетный режим

      • 4.2 Разделение времени и многозадачность

      • 4.3 Разделение полномочий

      • 4.4 Реальный масштаб времени

      • 4.5 Файловые системы и структуры

    • 5 «Unix», стандартизация ОС и POSIX

    • 6 «Post Unix» архитектуры ОС

    • 7 Примечания

    • 8 См. также

    • 9 Литература

    Функции


    Основные функции (простейшие ОС):

    • Загрузка приложений в оперативную память и их выполнение;

    • Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода);

    • Управление оперативной памятью (распределение между процессами, виртуальная память);

    • Управление доступом к данным на энергонезависимых носителях (таких как Жёсткий диск, Компакт-диск и т. д.), как правило с помощью файловой системы;

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

    • Сетевые операции, поддержка стека протоколов

    Дополнительные функции:

    • Параллельное или псевдопараллельное выполнение задач (многозадачность);

    • Взаимодействие между процессами;

    • Защита самой системы, а также пользовательских данных и программ от злонамеренных действий пользователей или приложений;

    • Разграничение прав доступа и многопользовательский режим работы (аутентификация, авторизация).

    Объекты ядра ОС


    • Процессы

    • Файлы

    • События

    • Потоки

    • Семафоры

    • Мюьтексы

    • Каналы

    • Файлы, проецируемые в память (для платформы Win32).



    Понятие операционной системы


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

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

    Операционные системы, в свою очередь, нужны, если:

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

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

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

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

    • наконец, оператор должен иметь возможность, так или иначе, управлять процессами выполнения отдельных программ. Для этого служат операционные среды, одна из которых — оболочка и набор стандартных утилит — является частью ОС (прочие, такие, как графическая операционная среда, образуют независимые от ОС прикладные платформы). Таким образом, современные универсальные ОС можно охарактеризовать прежде всего как

      1. использующие файловые системы (с универсальным механизмом доступа к данным),

      2. многопользовательские (с разделением полномочий),

      3. многозадачные (с разделением времени).

    Многозадачность и распределение полномочий требуют определённой иерархии привилегий компонентов самой ОС. В составе ОС различают три группы компонентов:

    • ядро, содержащее планировщик; драйверы устройств, непосредственно управляющие оборудованием; сетевую подсистему, файловую систему;

    • системные библиотеки и

    • оболочку с утилитами.

    Большинство программ, как системных (входящих в ОС), так и прикладных, исполняются в непривилегированном («пользовательском») режиме работы процессора и получают доступ к оборудованию (и, при необходимости, к другим ядерным ресурсам, а также ресурсам иных программ) только посредством системных вызовов. Ядро исполняется в привилегированном режиме: именно в этом смысле говорят, что ОС (точнее, её ядро) управляет оборудованием.

    Текущая редакция стандарта на ОС содержит определения около тысячи системных вызовов и других библиотечных подпрограмм (часть из которых должна реализоваться только в определённых классах систем; напр., в системах «реального времени») и около 200 команд оболочки и утилит ОС. Стандарт определяет лишь функции вызовов и команд, и не содержит указаний относительно способов их реализации.

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

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

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


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

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

    Пакетный режим


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

    Разделение времени и многозадачность


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

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

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

    Разделение полномочий


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

    Реализация разделения полномочий в ОС была поддержана разработчиками процессоров, предложивших архитектуры с двумя режимами работы процессора — «реальным» (в котором исполняемой программе доступно всё адресное пространство компьютера) и «защищённым» (в котором доступность адресного пространства ограничена диапазоном, выделенном при запуске программы на исполнение).

    Реальный масштаб времени


    Применение универсальных компьютеров для управления производственными процессами потребовало реализации «реального масштаба времени» («реального времени») — синхронизации исполнения программ с внешними физическими процессами.

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

    Файловые системы и структуры


    Постепенная замена носителей с последовательным доступом (перфолент, перфокарт и магнитных лент) накопителями произвольного доступа (на магнитных диск)

    «Unix», стандартизация ОС и POSIX


    К концу 1960-х гг. отраслью и научно-образовательным сообществом был создан целый ряд ОС, реализующих все или часть очерченных выше функций. К ним относятся «Atlas» (Манчестерский университет), «CTTS» и «ITSS» (Массачусетский технологический институт (МТИ)), «THE» (Эйндховенский технологический университет), «RS4000» (Университет Орхуса) и др. (всего эксплуатировалось более сотни различных ОС).

    Наиболее развитые ОС, такие как «OS/360» (компания «IBM»), «SCOPE» (компания «CDC») и завершённый уже в 1970-х годах «MULTICS» (МТИ и компания «Bell Labs»), предусматривали возможность исполнения на многопроцессорных компьютерах.

    Эклектичный характер разработки ОС привёл к нарастанию кризисных явлений, прежде всего, связанных с чрезмерными сложностью и размерами создаваемых систем. ОС были плохо масштабируемыми (более простые не могли использовать все возможности крупных вычислительных систем; более развитые неоптимально исполнялись на малых или не могли исполняться на них вовсе) и тотально несовместимыми между собой, их разработка и совершенствование затягивалась.

    Задуманная и реализованная в 1969 году Кеном Томпсоном при участии нескольких коллег (включая Денниса Ричи и Брайана Кернигана), ОС «Unix» («Unix»; первоначально «UNICS», что обыгрывало название «MULTICS») вобрала в себя многие черты более ранних ОС, но обладала целым рядом свойств, отличающих её от большинства предшественниц:

    • простая метафорика (два ключевых понятия: вычислительный процесс и файл);

    • компонентная архитектура: принцип «одна программа — одна функция» плюс мощные средства связывания различных программ для решения возникающих задач («оболочка»);

    • минимизация ядра (кода, выполняющегося в «реальном» («привилегированном») режиме процессора) и количества системных вызовов;

    • независимость от аппаратной архитектуры и реализация на машиннонезависимом языке программирования (язык программирования «Си» стал «побочным продуктом» разработки «Unix»);

    • унификация файлов.

    «Unix», благодаря своему удобству прежде всего в качестве инструментальной среды (среды разработки), была тепло принята сначала в университетах, а затем и в отрасли, получившей прототип единой ОС, которая могла использоваться на самых разных вычислительных системах и, более того, могла быть быстро и с минимальными усилиями перенесена на любую вновь разработанную аппаратную архитектуру.

    В конце 70-х годов XX века сотрудники Калифорнийского университета в Беркли внесли ряд усовершенствований в исходные коды UNIX, включая работу с протоколами TCP/IP. Их разработка стала известна под именем BSD — «Berkeley Software Distribution».

    Задачу разработать независимую (от авторских прав «Bell Labs») реализацию той же архитектуры поставил и Ричард Столлмен, основатель проекта «GNU».

    Благодаря конкурентности реализаций архитектура ОС «Unix» стала вначале фактическим отраслевым стандартом, а затем обрела статус и стандарта юридического — ISO/IEC 9945[1].

    ОС, следующие стандарту или опирающиеся на него, называют «POSIX-совместимыми» (чаще встречается словоупотребление «Unix подобные» или «семейство Unix», но оно противоречит статусу торгового знака «Unix», принадлежащего консорциуму «The Open Group» и зарезервированному для обозначения ОС, строго следующих стандарту) благодаря названию стандарта — POSIX. Сертификация на совместимость со стандартом стоит некоторых денег, из-за чего некотрые системы не проходили этот процесс, однако считаются POSIX-совместимыми, просто потому что это так.

    К Unix-подобным ОС относятся системы, базирующиеся на последней версии «Unix», выпущенной «Bell Labs» («System V»), на разработках Университета Беркли («FreeBSD», «OpenBSD», «NetBSD»), а также ОС «GNU/Linux», разработанная в части утилит и библиотек проектом «GNU» и в части ядра — сообществом, возглавляемым Линусом Торвальдсом.

    Стандартизация ОС гарантирует возможность безболезненной замены самой ОС и/или оборудования при развитии вычислительной системы или сети и дешёвого переноса прикладного программного обеспечения (строгое следование стандарту предполагает полную совместимость программ на уровне исходного текста; из-за профилирования стандарта и его развития некоторые изменения бывают всё же необходимы, но перенос программы между POSIX-совместимыми системами обходится на порядки дешевле, чем между альтернативными), а также преемственность опыта пользователей.

    Самым заметным эффектом существования этого стандарта стало эффективное разворачивание Интернета в 90-х годах.

    «Post Unix» архитектуры ОС


    Коллектив, создавший ОС «Юникс», попытался позднее повторить свой успех, обобщив и дополнив исходную концепцию. Таким образом появились ОС «Plan9» и «Inferno», не получившие, впрочем, широкого распространения..

    Позднее на основе «Plan9» в Испании были разработаны ОС «Off++» и «Plan B», носящие экспериментальный характер.

    К попыткам создать постюниксовскую архитектуру можно также отнести разработку системы программирования и операционной среды «Оберон» в Швейцарском федеральном технологическом институте (ETH Zurich) под руководством проф. Никлауса Вирта.

    Примечания


    1. Свежая версия ISO/IEC 9945 принята Международной организацией стандартизации (ИСО) в 2003 г.

    См. также


    • Список операционных систем

    • Многозадачность

    • Хронология операционных систем

    • Операционное окружение

    • WebOS

    • Аппаратная платформа компьютера

    Литература


    • Вильям Столлингс «Операционные системы» = Operating Systems: Internals and Design Principles. — М.: «Вильямс», 2004. — С. 848. — ISBN 0-13-031999-6

    • Деннинг П.Дж., Браун Р. Л. «Операционные системы.» В сб.: «Современный компьютер». — М.: 1986.

    • Керниган Брайан и Пайк Роб. «UNIX — универсальная среда программирования». — М., 1992 (классическое введение в открытые ОС, по большей части сохранившее актуальность).

    • Отставнов Максим. «Свободные программы и системы в школе». — М., 2003.

    • Э. Таненбаум, А. Вудхалл. «Операционные системы: Разработка и реализация.» — СПб.: 2006. — ISBN 5-469-00148-2

    • Э. Таненбаум. «Современные операционные системы. 2-е изд.» — СПб.: Питер, 2005. — 1038 с.: ил. ISBN 5-318-00299-4

    • Дмитрий Иртегов. «Введение в операционные системы 2-е. изд.» — BHV-СПб, 2007. ISBN 978-5-94157-695-1

    • А. Гордеев. «Операционные системы» — СПб.: Питер, 2007. ISBN 978-5-94723-632-3 (учебник для ВУЗов)

    • Raymond Eric S. The Art of Unix Programming. — 2003.

    • Sobell Mark G. Unix System V. A Practical Guide. 3rd ed. — 1995.



    1   2   3   4   5   6   7   8   9   10


    написать администратору сайта