Справочник от Автор24
Поделись лекцией за скидку на Автор24

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

  • ⌛ 2008 год
  • 👀 612 просмотров
  • 📌 577 загрузок
  • 🏢️ МГТУ
Выбери формат для чтения
Загружаем конспект в формате doc
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Операционные системы» doc
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «Мурманский Государственный Технический Университет» Конспект лекций по дисциплине «Операционные системы» Модуль №1. Введение в операционные системы. Мурманск, 2008 г. Понятие операционной системы. Современные аппаратные средства позволяют выполнять множество разнообразных программных приложений. Эти приложение тесно взаимодействуют между собой, а также широко используют возможности, предоставляемые аппаратными средствами компьютера. Для того чтобы такое взаимодействие осуществлялось максимально эффективно, а программы не вступали в конфликтные ситуации между собой, требуется разработка специализированного программного обеспечения, на которое накладываются функции управления аппаратными средствами компьютера и координации работы приложений. Операционная система – это базовый комплекс компьютерных программ, обеспечивающий управление аппаратными средствами компьютера, работу с файлами, ввод и вывод данных, а также выполнение прикладных программ и утилит. Развитие операционных систем шло одновременно с развитием аппаратных средств компьютера и претерпело множество изменений. На начальных этапах развития компьютерной техники это было комплекс программ по взаимодействию с аппаратными средствами. Но постоянное усложнение, постоянное развитие компьютерных технологий усложняло и программные приложения, а вместе с ними и операционные системы. Развитие многозадачности потребовало от операционных систем решения новых, ранее неизвестных вопросов, связанных, прежде всего, с организацией межпроцессового взаимодействия. Кроме того, развитие глобальных и локальных сетей породило новый вид операционных систем – распределенных и сетевых. Для большинства пользователей операционная система является черным ящиком. В конечном итоге ему не требуется знать механизмы взаимодействия приложений между собой или особенности функционирования драйверов. Иные задачи стоят перед системными программистами и администраторами, равно как и прикладными программистами. Им требуется понимать принципы организации файловых систем, организации доступа к ресурсам компьютера. Операционная система представляется как посредник между аппаратными средствами компьютера и конечными прикладными программами. Для написания прикладных программ требуется предоставить программный интерфейс, используя который программист может быстро и эффективно разрабатывать новые приложения. Операционная система предоставляет такой прикладной программный интерфейс. Далее мы рассмотрим историю развития операционных систем, их функциональное назначение, классификацию и устройство. Назначение и функции операционных систем (ОС). К системному программному обеспечению относят такие программы, которые являются общими, без кот невозможно выполнение или создание других программ, ОС относят к этим программам. На сегодняшний день ОС представляет собой комплекс системных управляющих и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс м/у аппаратурой компьютера и пользователем с его задачами, а с другой стороны, предназначены для наиболее эффективного расходования ресурсов вычислительной системы и организации надежных вычислений. Основные функции ОС: Прием от пользователя заданий, или команд, сформулированных на соответствующем языке, и их обработка. Задания могут передаваться в виде текстовых команд оператора или в форме указаний, выполняемых с помощью манипулятора. Эти команды связаны, прежде всего, с запуском (приостановкой, остановкой) программ, с операциями над файлами, и иные команды; Загрузка в оперативную память подлежащих исполнению программ; Распределение памяти, а в большинстве современных систем и организация виртуальной памяти; Запуск программы; Идентификация всех программ и данных; Прием и исполнение различных запросов от выполняющихся приложений. Ос умеет выполнять очень большое количество системных функций, которые могут быть запрошены из выполняющейся программы. Обращение к этим сервисам осуществляется по соответствующим правилам, которые и определяют интерфейс прикладного программирования этой ОС; Обслуживание всех операций ввода-вывода; Обеспечение работы систем управлений файлами (СУФ) и/или СУБД, что позволяет резко увеличить эффективность всего программного обеспечения; Обеспечение режима мультипрограммирования; Планирование и диспетчеризация задач в соответствии с заданными стратегией и дисциплинами обслуживания; Организация механизмов обмена сообщениями и данными м/у выполняющимися программами; Для сетевых ОС характерной является функция обеспечения взаимодействия связанных м/у собой компов; Защита одной программы от влияния другой, обеспечение сохранности данных, защита самой ОС от исполняющихся на комп приложений; Аутентификация и авторизация пользователей. Под аутентификацией понимается процедура проверки имени пользователя и его пароля на соответствие тем значениям, которые хранятся в его учетной записи; Удовлетворение жестким ограничениям на время ответа в режиме реального времени; Обеспечение работы систем программирования, с помощью которых пользователи готовят свои программы; Предоставление услуг на случай частичного сбоя системы. Исторический обзор. Несколько лет назад определение операционной системы могло бы выглядеть так: программное обеспечение, которое управляет аппаратными средствами. Но ландшафт компьютерного мира сильно изменился с тех пор, требуя более глубокого определения . Чтобы повысить эффективность использования аппаратуры, приложения проектируются в расчете на то, что они будут работать одновременно друг с другом. Если эти приложения не были разработаны должным образом, то они будут создавать друг другу помехи. Программная прослойка, называемая операцион­ной системой, отделяет приложения от аппаратных средств, к которым они имеют доступ. Когда пользователь обращается к компьютеру для выполнения действия (на­пример, требует запустить приложение или распечатать документ), операционная система управляет программным обеспечением и аппаратными компонентами, чтобы выполнить запрос пользователя. Операционные системы – это в первую очередь диспетчеры ресурсов, они управляют аппаратурой, включая процессоры, память, устройства ввода/вывода и устройства связи. Они также должны управ­лять приложениями и другими программными элементами, которые в отличие от аппаратных компонентов не являются физическими объектами. За последние 60 лет операционные системы прошли в своем развитии ряд опре­деленных этапов или поколений. Длительность каждого из этих этапов составляет в среднем около 10 лет. В первых электронных цифровых вычислительных маши­нах 40-х годов операционных систем не было. Системы 50-х годов, как правило, были однозадачными и использовали специальные приемы для «смягчения» пере­хода от одной задачи к другой с целью наиболее эффективного использования ком­пьютерной системы. Задача состояла из последовательности директив, которые выполнялись программой. Такие компьютеры назывались однопоточными систе­мами пакетной обработки, так как программы и данные собирались в группы, или пакеты путем последовательной загрузки их на ленту или диск. Системы 60-х годов также были системами пакетной обработки, но они исполь­зовали ресурсы компьютера с большей эффективностью путем выполнения не­скольких задач одновременно. Системы этого периода времени усовершенствовали механизм распределение ресурсов, позволяя одной задаче использовать процессор, пока остальные использовали периферийные устройства. В рамках этого подхода разработчики операционных систем создали такие системы, которые работали в мультипрограммном режиме и справлялись с несколькими задачами одновре­менно, при этом, количество выполняемых одновременно задач определялось сте­пенью мультипрограммности системы. В 1964 году компания IBM представила свое семейство компьютеров Sys­tem/360. Различные модели компьютеров этого семейства были разработаны в рамках доктрины полной совместимости аппаратных средств. Использование единой для всех моделей компьютеров операционной системы OS/360 позволяло быстро и безболезненно переносить задачи на более мощные компьютеры этой се­рии. Усовершенствованные операционные системы были разработаны для одно­временного обслуживания многочисленных интерактивных пользователей. Систе­мы с разделением времени были разработаны для поддержки нескольких пользо­вателей, одновременно работающих в диалоговом режиме. Системы реального времени должны отреагировать на запрос в течение опреде­ленного промежутка времени. Ресурсы системы реального времени очень часто не­доиспользуются – для таких систем более важен быстрый ответ, чем эффективное использование ресурсов. Длительность жизненного цикла задачи – интервал времени между постанов­кой задачи и возвратом результатов ее выполнения – была уменьшена до минут, а порой и секунд. Значимость систем, работающих в режиме разделения времени, для процесса разработки программ была продемонстрирована, когда МТИ, Джене­рал Электрик и Bell Labs использовали систему CTSS для разработки ее преемни­цы, Multics. TSS, Multics и CP/CMS – все эти системы имели виртуальную па­мять, которая позволяла программам обращаться к большему пространству адре­сов, чем фактически существует в основной памяти, которая также называется реальной или физической. Системы 70-х годов были в основном многорежимными мультипрограммными системами, которые поддерживали пакетную обработку, разделение времени и при­ложения реального времени. Персональная вычислительная техника находилась в начальной стадии своего развития, стимулируемая предыдущими и продолжающимися разработками в сфере микропроцессорных технологий. Связь между ком­пьютерными системами Соединенных Штатов становилась все интенсивнее по мере того, как все более широкое применение получали коммуникационные стандарты TCP/IP Министерства Обороны, особенно в военной и образовательной компьютер­ной среде. Возросло и количество проблем, связанных с безопасностью, благодаря увеличению объемов информации, передаваемой по уязвимым линиям связи. 80-е годы были десятилетием персональных компьютеров и рабочих станций. Вместо того, чтобы пересылать данные для их обработки на большую центральную вычислительную машину, сами вычислительные средства были перенесены в те места, где они были необходимыми. Персональные компьютеры оказались доволь­но простыми в использовании и обучении частично благодаря графическому интер­фейсу пользователя (Graphical User Interface – GUI), в котором использовались графические элементы, такие как окна, значки и меню для облегчения общения пользователя с программами. По мере того, как технологические затраты умень­шались, передача информации посредством компьютерной сети становилась более практичной и менее дорогой. Распределенная обработка данных получила широ­кое распространение в рамках модели «клиент-сервер». Клиенты – это компьюте­ры, которые запрашивают различные услуги; серверы – это компьютеры, кото­рые предоставляют запрашиваемые услуги. Сфера разработки программного обеспечения продолжала развиваться, причем одна из инициатив правительства Соединенных Штатов состояла в осуществлении более жесткого контроля над программными разработками Министерства Оборо­ны. К важным целям такой инициативы относится возможность повторного ис­пользования разработанного кода и реализация более высокой степени абстракции в языках программирования. Еще одним достижением в отрасли конструирования программного обеспечения явился переход к использованию процессов, которые включали множественные потоки команд, обладающие возможностью выполнять­ся независимо друг от друга. В конце 60-х годов Управление перспективных исследовательских программ (Advanced Research Projects Agency – ARPA) Министерства Обороны США запла­нировало создание сети, которая бы соединяла около дюжины компьютерных сис­тем университетов и научно-исследовательских организаций, финансируемых этим управлением. Управление перспективных исследовательских программ приступило к реализации сети, которая очень быстро получила название ARPAnet – прароди­теля современной сети Интернет. Главным достоинством ARPAnet оказалась воз­можность быстрой и удобной связи посредством того, что позже стало называться электронной почтой (e-mail). Это важно и для современной сети Интернет: с элек­тронной почтой мгновенная передача сообщений и файлов облегчает обмен инфор­мацией между сотнями миллионов людей по всему миру. Сеть ARPAnet была создана для работы без централизованного управления. Протоколы для связи по ARPAnet получили название Протокола управления пе­редачей/Протокола Интернет (Transmission Control Protocol/Internet Protocol – TCP/IP) и использовались для управления обменом информации между приложе­ниями. Протоколы гарантировали передачу сообщений по некоторому маршруту от отправителя к получателю и обеспечивали их целостность. В конце концов, пра­вительство разрешило доступ к сети Интернет в коммерческих целях. Всемирная паутина дает возможность пользователям компьютеров размещать и просматривать мультимедиа-документы (т.е. текстовые, графические, анимаци­онные, аудио- и видеофайлы) практически любой тематики. Несмотря на то, что сеть Интернет была создана более тридцати лет назад, рождение Всемирной Пау­тины не является таким уж давним событием. В 1989 году Тим Бернерс-Ли из Ев­ропейской организации ядерных исследований (European Center for Nuclear Research – CERN) занялся разработкой технологии совместного использования информации посредством текстовых документов, снабженных гиперссылками. Для внедрения новой технологии, он создал язык HTML (HyperText Markup Language – Гипертекстовый язык разметки). Он также разработал и Протокол передачи гипертекстов (Hypertext Transfer Protocol – HTTP), чтобы реализовать технологическую основу для своей новой гипертекстовой информационной систе­мы, которую он назвал Всемирной Паутиной. Для 90-х годов характерен экспоненциальный рост производительности аппа­ратных средств. Дешевая вычислительная мощность и память предоставили поль­зователям возможность работать на персональном компьютере с большими и слож­ными программами, малым и средним компаниям использовать эти недорогие в обслуживании машины для работы с обширными базами данных и вычислитель­ными задачами, которые когда-то поручались универсальным вычислительным машинам. В 90-е годы значительно ускорился переход к распределенным вычисле­ниям (т.е. использованию большого количества компьютеров для выполнения об­щей задачи). Поскольку требования к Интернет-подключениям росли, поддержка операционными системами сетевых задач получила статус стандартной. Домаш­ние пользователи, а также пользователи организаций повышали производитель­ность своего труда, используя доступ к ресурсам компьютерных сетей. В 90-е годы на первые позиции в сфере компьютерного бизнеса вышла корпора­ция Microsoft. Операционные системы Windows, позаимствовавшие многие идеи, прежде реализованные операционными системами Macintosh (как, например, значки, меню, окна), предоставили пользователям возможность с легкостью управлять множеством параллельно выполняемых приложений. Объектная технология стала популярной во многих областях вычислительной техники, поскольку огромное количество приложений было написано на объект­но-ориентированных языках программирования, таких как C++ и Java. В объект­но-ориентированных операционных системах объектами являются компоненты операционной системы. Понятия объектного ориентирования, такие как наследо­вание и интерфейсы, использовались для создания модульных операционных сис­тем, которые были проще в обслуживании и расширении, чем созданные по ста­рым технологиям системы. Большая часть коммерческого программного обеспечения продается в виде объ­ектного кода. Исходный код не прилагается, что позволяет производителям скрыть информацию, которая представляет собой коммерческую тайну, и техноло­гии программирования. Открытое программное обеспечение распространяется вместе с исходным кодом, позволяя отдельным лицам проверять и модифициро­вать его, прежде чем компилировать и запускать в действие. Операционная систе­ма Linux и веб-сервер Apache являются свободно-распространяемыми (бесплатны­ми) и распространяются с исходным кодом. В 80-х годах, Ричард Столлмен, разработчик программного обеспечения из Массачусетского Технологического Института, запустил проект, имевший целью восстановить и усовершенствовать основные инструменты операционной системы UNIX компании AT&T. Столлмен создал Проект свободного распространения про­граммного обеспечения GNU, так как он был не согласен с политикой продажи прав на использование программного обеспечения. Открытое ПО способствует со­вершенствованию программной продукции посредством предоставления любому члену сообщества разработчиков возможности тестировать, отлаживать и улуч­шать приложения. Это увеличивает вероятность того, что скрытые ошибки, кото­рые могут привести к нарушениям безопасности системы или логики решения зада­чи, будут выявлены и устранены. Более того, отдельные лица и корпорации могут модифицировать исходный код для создания заказных программных средств, кото­рые будут отвечать требованиям определенной среды. В 90-е годы операционные системы стали значительно удобнее для пользовате­ля. Элементы графического интерфейса пользователя, встроенные в операционную систему Macintosh компании Apple в 80-е годы, продолжали широко использовать­ся во многих операционных системах и становились более изысканными. Опера­ционные системы также поддерживали технологию «Plug-and-Play», предостав­ляя пользователям возможность подключать и отключать аппаратные средства, не перенастраивая операционную систему вручную. Посредническое программное обеспечение – это программное обеспечение, ко­торое является связующим звеном между двумя отдельными приложениями, как правило, посредством сети и между несовместимыми машинами. Данное про­граммное обеспечение имеет огромное значение для веб-служб, упрощая связь ме­жду множеством различных архитектур. Веб-службы оперируют в соответствии с рядом согласованных стандартов, которые позволяют двум компьютерным при­ложениям осуществлять связь и обмен данными посредством сети Интернет. Они являются готовыми к использованию элементами программного обеспечения в сети Интернет. Появление в 1981 году Персонального Компьютера IBM (часто называемого про­сто «ПК») послужило причиной возникновения и быстрого развития мощного рын­ка программного обеспечения, в рамках которого независимые поставщики ПО (Independent Software Vendors – ISV) могли сбывать пакеты программ для персо­нальных компьютеров IBM, ориентированные на работу с операционной системой MS-DOS. Если некая операционная система представляет собой среду, удобную для быстрой и эффективной разработки приложений, то такая операционная система и аппаратные средства вероятней всего будут пользоваться спросом на рынке. Если же база приложений (т.е. сочетание аппаратных средств и операционной системы, в которой разрабатываются приложения) заняла прочные позиции, пользователей и разработчиков программного обеспечения будет очень трудно склонить к переходу на абсолютно новую среду разработки приложений в другой операционной системе. Операционные системы, предназначенные для работы в среде с высокой произ­водительностью, должны разрабатываться в расчете на использование основных запоминающих устройств больших объемов, специализированных аппаратных средств, а также большого количества процессов. Встроенным системам свойстве­нен малый объем специализированных ресурсов, предназначенных для обеспече­ния функциональных возможностей таких устройств, как сотовые телефоны и карманные компьютеры. В такой среде эффективное управление ресурсами яв­ляется ключом к созданию хорошей операционной системы. Задачи систем реального времени должны решаться в течение определенного (как правило, короткого) промежутка времени. Например, автопилот самолета должен постоянно осуществлять измерение скорости, высоты и направления. Та­кие задачи не могут ожидать в течение неопределенного промежутка времени (или совсем не могут ожидать) завершения других не столь важных задач. Есть разновидность операционных систем, которые должны уметь управлять как доступными, так и недоступными в данной конфигурации аппаратными ресурсами вычислительной машины. Виртуальная машина (virtual machine – VM) – это про­граммный элемент, который функционирует таким же образом, как и пользователь­ское приложение, поверх базовой операционной системы. Операционная система виртуальной машины управляет ресурсами последней. Одно из применений вирту­альных машин состоит в обеспечении параллельного выполнения множества экзем­пляров операционных систем. Еще одно применение – эмуляция, – использование программ и аппаратуры для имитации функциональных возможностей программ­ного обеспечения и аппаратных средств, физически недоступных в системе. Созда­вая иллюзию непосредственного выполнения приложений на различной аппаратуре и операционных системах, виртуальные машины способствуют развитию переноси­мости (возможности программного обеспечения функционировать на различных платформах). Пользователь обращается к операционной системе посредством одного или не­скольких пользовательских приложений, а также часто посредством специального приложения, называемого оболочкой. Совокупность программ, объединяющая ос­новные компоненты операционной системы, называется ядром. Как правило, к этим компонентам относятся: планировщик процессов, диспетчер памяти, дис­петчер ввода-вывода, диспетчер межпроцессного взаимодействия (IPC Manager), диспетчер файлов. Практически все современные операционные системы поддерживают мульти­программную среду, в которой многочисленные процессы могут выполняться па­раллельно. Ядро управляет выполнением процессов. Программные компоненты, которые выполняются независимо друг от друга, но используют одну область па­мяти для совместной обработки общих данных, называются потоками. Если процесс намеревается получить доступ к устройству ввода/вывода, ему не­обходимо послать системный вызов операционной системе. Такой запрос впослед­ствии будет обработан драйвером устройства, который является программным компонентом операционной системы и взаимодействует непосредственно с аппа­ратными ресурсами. Драйвер располагает специфическим для данного устройства набором команд, предназначенных для выполнения запрашиваемых операций ввода/вывода. Пользователи привыкли рассчитывать на определенные свойства операционных систем, такие как: эффективность, живучесть, масштабируемость, расширяемость, мобильность, защищенность и безопасность, интерактивность, практичность. В монолитной операционной системе каждый компонент включен в ядро и мо­жет непосредственно взаимодействовать с другими компонентами. Монолитные операционные системы считаются высокоэффективными. Недостаток такой архи­тектуры заключается в сложности определения источника скрытых ошибок. Многоуровневый подход к операционным системам пытается решить эту про­блему, организовав компоненты, выполняющие сходные функции, в уровни. Каж­дый уровень системы взаимодействует только с соседним, расположенным непо­средственно над или под ним. При этом подходе, запросу на выполнение пользова­тельского процесса может понадобиться пройти через многие уровни, прежде чем он будет удовлетворен. Поскольку для передачи данных с одного уровня на другой должны быть использованы промежуточные элементы, производительность систе­мы снижается, в отличие от монолитного ядра, которому может понадобиться лишь один вызов, чтобы обслужить аналогичный запрос. Операционная система на основе микроядра предоставляет лишь малый набор услуг – это необходимое условие сохранения небольших размеров ядра и обеспе­чения его масштабируемости. Микроядра демонстрируют высокую степень мо­дульности, что делает их расширяемыми, переносимыми и масштабируемыми. Од­нако такая модульность достигается за счет повышения интенсивности межмо­дульного взаимодействия, что может привести к снижению производительности системы. Сетевая операционная система функционирует на одном компьютере и предос­тавляет собственным процессам доступ к таким ресурсам, как файлы и процессоры удаленных компьютеров. Распределенная операционная система – это единая опе­рационная система, управляющая ресурсами более чем одной компьютерной систе­мы. К ее задачам относятся обеспечение прозрачности, масштабируемость, отказо­устойчивость и совместимость.
«Операционные системы» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

Тебе могут подойти лекции

Смотреть все 588 лекций
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot