Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Программирование,его технологии

Содержание:

Введение

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

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

Основные понятия

Программа

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

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

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

Операционная среда

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

Процесс

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

Интерфейс

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

BIOS

Basic input/output system – “базовая система ввода-вывода”. Набор микропрограмм, реализующих программный интерфейс приложения для работы с аппаратурой компьютера и подключёнными к нему устройствами.

Магистраль (Системная шина)

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

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

Драйвер

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

Периферийное устройство

Аппаратура, которая позволяет вводить информацию в компьютер или выводить её из него.

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

Классифицируются операционные среды по следующим основным признакам:

  1. количеству одновременно работающих пользователей: однопользовательские, многопользовательские;
  2. числу процессов, одновременно выполняемых под управлением системы: однозадачные, многозадачные;
  3. количеству поддерживаемых процессоров: однопроцессорные, многопроцессорные;
  4. разрядности кода ОС: 8-разрядные, 16-разрядные, 32-разрядные, 64-разрядные;
  5. типу интерфейса: командные (текстовые) и объектно-ориентированные (графические);
  6. типу доступа пользователя к ЭВМ: с пакетной обработкой, с разделением времени, реального времени;
  7. типу использования ресурсов: сетевые, локальные.

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

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

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

Четвертый признак подразделяет операционные системы на 8-, 16-, 32- и 64-разрядные. При этом подразумевается, что разрядность операционной системы не может превышать разрядности процессора.

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

Согласно шестому признаку операционные системы подразделяются на системы:

  • пакетной обработки, в которых из программ, подлежащих выполнению, формируется пакет (набор) заданий, вводимых в ЭВМ и выполняемых в порядке очередности с возможным учетом приоритетности (например, OC EC);
  • разделения времени (TSR), обеспечивающих одновременный диалоговый (интерактивный) режим доступа к ЭВМ нескольких пользователей на разных терминалах, которым по очереди выделяются ресурсы машины, что координируется операционной системой в соответствии с заданной дисциплиной обслуживания (UNIX, VMS);
  • реального времени, обеспечивающих определенное гарантированное время ответа машины на запрос пользователя с управлением им какими-либо внешними по отношению к ЭВМ событиями, процессами или объектами (QNX, RT/11).

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

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

Первые вычислительные машины

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

BIOS – первый шаг к созданию операционных систем

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

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

Поэтому для разрешения указанных проблем были созданы специальные библиотеки процедур ввода-вывода (BIOS – Base Input - Output System). Тщательно отлаженные и эффективные процедуры из BIOS можно было легко использовать с любыми новыми программами, не затрачивая время и силы на разработку и отладку стандартных процедур для ввода и вывода данных. Таким образом, с появлением BIOS программное обеспечение разделилось на системное и прикладное программное обеспечение. Причем прикладное программное обеспечение непосредственно ориентировано на решение полезных задач, в то время как системное программное обеспечение ориентировано исключительно на поддержку работы и упрощение разработки прикладного программного обеспечения. Однако, BIOS еще не является операционной системой, т.к. не выполняет важнейшую для любой операционной системы функцию – управление процессом вычислений прикладной программы. Кроме того, BIOS не обеспечивает и другие важные функции операционной системы – хранение и запуск прикладных программ. BIOS и библиотеки математических процедур, которые появились примерно в то же время, просто облегчали процесс разработки и отладки прикладных программ, делали их более простыми и надежными. Тем не менее, создание BIOS стало первым шагом на пути к созданию полноценной операционной системы.

Система пакетной обработки – прообраз современной операционной системы

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

Впервые, пакетная система была разработана в середине 50-х компанией General Motors для машин IBM 701. Это была первая операционная система (GM-НАА). Основная идея пакетной обработки состоит в том, чтобы управление загрузкой программ и распечатку результатов поручить маломощным и относительно дешевым машинам-сателлитам, которые подключаются к большой (основной) машине через высокоскоростные электронные каналы. При этом большая ЭВМ будет только решать задачу, полученную от машины-сателлита, и после завершения задачи передавать результаты по высокоскоростному каналу другой машине-сателлиту для распечатки. Машины сателлиты работают самостоятельно, освобождая центральный процессор от необходимости управления медленными внешними устройствами. При этом распечатка результатов предыдущей задачи может происходить в ходе решения текущей задачи, и одновременно в электронную память машины-сателлита может считываться следующая задача. Такая организация системы пакетной обработки заданий известна как простая пакетная система. Системы пакетной обработки заданий, реализованные в 50-е годы, стали прообразом современных операционных систем. В них впервые было реализовано программное обеспечение, используемое для управления исполнением прикладных программ. Современные периферийные устройства, и, прежде всего, накопители на жестких магнитных дисках, способны передавать большие объемы данных без участия центрального процессора. Благодаря такому свойству аппаратуры компьютера существуют и эффективно работают современные многозадачные операционные системы.

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

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

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

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

Операционные системы с поддержкой виртуальной памяти

Появление системы виртуальной памяти в конце 60-х, стало последним шагом на пути к современным операционным системам. Толчком к появлению виртуальной памяти стали сложности управления памятью в многозадачных операционных системах. Программы, как правило, требуют для своего размещения непрерывную область памяти. В ходе работы, когда программа завершается, она освобождает память, но этот регион памяти далеко не всегда пригоден для размещения новой программы. Он или слишком мал, и тогда для размещения программы приходится искать участок в другой области памяти, или слишком велик, и тогда после размещения новой программы останется неиспользуемый фрагмент. При работе операционной системы, вскоре образуется очень много таких фрагментов – суммарный объем свободной памяти велик, но разместить новую программу не удается так как нет ни одной достаточно длинной непрерывной свободной области. Такое явление называется фрагментацией памяти. В случае, когда несколько программ одновременно находятся в общей памяти, ошибочные или преднамеренные действия со стороны какой-либо программы могут нарушить выполнение других программ, кроме того, данные или результаты работы одних программ могут быть несанкционированно прочитаны другими программами. Решающей предпосылкой для появления системы виртуальной памяти стал механизм свопинга (от англ. to swap – менять, обменивать). Идея свопинга состоит в том, чтобы выгружать из ОЗУ во вторичную память (на магнитный диск) программы, временно снятые с выполнения, и загружать их обратно в ОЗУ, когда они становятся готовыми к дальнейшему выполнению. Таким образом, происходит постоянный обмен программами между ОЗУ и вторичной памятью. Свопинг позволяет освободить место в оперативной памяти для загрузки новых программ за счет выталкивания во вторичную память программ, которые не могут выполняться в данный момент. Свопинг достаточно эффективно решает проблему нехватки оперативной памяти и фрагментации, но не решает проблемы защиты. Виртуальная память также основана на выталкивании части программ и данных из оперативной памяти во вторичную память, но реализуется гораздо сложнее и требует обязательной поддержки от аппаратных средств процессора. В конечном итоге, система виртуальной памяти организует собственное адресное пространство для каждой запущенной программы, которое называется виртуальное адресное пространство. При этом участки виртуального адресного пространства, по усмотрению операционной системы, могут отображаться либо на участки оперативной памяти, либо на участки вторичной памяти. При использовании виртуальной памяти, программы не смогут ошибочно или преднамеренно обратиться к данным других программ или самой операционной системы – подсистема виртуальной памяти гарантирует защиту данных. Кроме того, неиспользуемые в данный момент области виртуального адресного пространства отображаются во вторичную память, т.е. данные из этих областей хранятся не в ОЗУ, а во вторичной памяти, что решает проблему нехватки оперативной памяти. Наконец, области виртуального адресного пространства могут отображаться на произвольные участки ОЗУ, при этом соседние участки виртуального адресного пространства не обязательно должны быть соседними в ОЗУ, что решает проблему фрагментации. Виртуальная память впервые была использована в реальных операционных системах в конце 60-х, но широкое распространение виртуальная память получила только в 80-х (UNIX, VAX/VMS), а повсеместно стала применяться в персональных компьютерах лишь в середине 90-х годов (OS/2, Linux, Windows NT). В настоящее время, виртуальная память, наряду с многозадачностью, является неотъемлемой частью практически любой современной операционной системы.

Графические интерфейсы пользователя

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

  • пользователю, в зависимости от текущей ситуации, предлагается выбрать один из нескольких альтернативных вариантов дальнейших действий;
  • возможные варианты действий пользователя представлены на экране ЭВМ в виде текстовых строк (меню) или схематичных рисунков (пиктограмм);
  • для выбора одного из вариантов дальнейших действий достаточно совместить на экране монитора указатель (курсор) с элементом меню или пиктограммой и нажать заранее определенную клавишу (обычно это <пробел>, <ввод> или кнопка мышки), чтобы проинформировать систему о сделанном выборе.

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

Встроенная поддержка сети

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

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

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

Ядро

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

Командный процессор

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

Драйверы устройств

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

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

Преобразуют системные вызовы приложений в системные вызовы ядра.

Пользовательские оболочки

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

Утилиты

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

Справочная система

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

Подсистемы ОС

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

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

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

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

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

  1. Организация эффективного использования ресурсов компьютера. ОС не только представляет пользователям и программистам удобный интерфейс к аппаратным средствам компьютера, но и является своеобразным диспетчером ресурсов компьютера. К числу основных ресурсов современных вычислительных систем относятся процессоры, основная память, таймеры, наборы данных, диски, накопители на магнитных лентах (МЛ), внешние накопители памяти(CD/DVD/Blu-Ray/USB), принтеры, сетевые устройства и др. Эти ресурсы распределяются операционной системой между выполняемыми программами. В отличие от программы, которая является статическим объектом, выполняемая программа – это динамический объект, он называется процессом и является базовым понятием современных ОС. Управление ресурсами вычислительной системы с целью наиболее эффективного их использования является вторым назначением операционной системы. Критерии эффективности, в соответствии с которыми ОС организует управление ресурсами компьютера, могут быть различными. Например, в одних системах важен такой критерий, как пропускная способность вычислительной систем, в других – время ее реакции. Зачастую ОС должны удовлетворять нескольким, противоречащим друг другу критериям, что доставляет разработчикам серьезные трудности. Управление ресурсами включает решение ряда общих, не зависящих от типа ресурса задач:

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

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

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

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

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

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

Сюда относятся:

Диагностические программы для выявления ошибок в конфигурации ОС;

Средства восстановления последней работоспособной конфигурации;

Средства восстановления поврежденных и пропавших системных файлов и др.

  1. Возможность развития. Современные ОС организуются таким образом, что допускают эффективную разработку, тестирование и внедрение новых системных функций, не прерывая процесса нормального функционирования вычислительной системы. Большинство операционных систем постоянно развиваются (нагляден пример Windows). Происходит это в силу следующих причин:
  • Обновление и возникновение новых видов аппаратного обеспечения. Например, ранние версии ОС UNIX и OS/2 не использовали механизмы страничной организации памяти, потому, что они работали на машинах, не обеспеченных соответствующими аппаратными средствами.
  • Новые сервисы. Для удовлетворения пользователей или нужд системных администраторов ОС должны постоянно предоставлять новые возможности. Например, может потребоваться добавить новые инструменты для контроля или оценки производительности, новые средства ввода-вывода данных (речевой ввод). Другой пример – поддержка новых приложений, использующих окна на экране дисплея.
  • Исправления. В каждой ОС есть ошибки. Время от времени они обнаруживаются и исправляются. Отсюда постоянные появления новых версий и редакций ОС. Необходимость регулярных изменений накладывает определенные требования на организацию операционных систем. Очевидно, что эти системы (как, впрочем, и другие сложные программы системы) должны иметь модульную структуру с четко определенными межмодульными связями (интерфейсами). Важную роль играет хорошая и полная документированность системы.

Функции операционных систем

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

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

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

Все современные дисковые операционные системы обеспечивают создание файловой системы, предназначенной для хранения данных на дисках и обеспечения доступа к ним. Принцип организации файловой системы - табличный. Поверхность жесткого диска рассматривается как трехмерная матрица, измерениями которой являются номера поверхности, цилиндра и сектора. Под цилиндром понимается совокупность всех дорожек, принадлежащих разным поверхностям и находящихся на равном удалении от оси вращения. Данные о том, в каком месте диска записан тот или иной файл, хранятся в системной области диска в специальных таблицах размещения файлов (Д4Г-таблицах). Поскольку нарушение Е4Г-таблицы приводит к невозможности воспользоваться данными, записанными на диске, к ней предъявляются особые требования надежности, и она существует в двух экземплярах, идентичность которых регулярно контролируется средствами операционной системы. Наименьшей физической единицей хранения данных является сектор. Размер сектора равен 512 байт. Поскольку размер РЛГ-таблицы ограничен, то для дисков, размер которых превышает 32 Мбайт, обеспечить адресацию к каждому отдельному сектору не представляется возможным. В связи с этим группы секторов условно объединяются в кластеры. Кластер является наименьшей единицей адресации к данным. Размер кластера, в отличие от размера сектора, не фиксирован и зависит от емкости диска. Несмотря на то что данные о местоположении файлов хранятся в табличной структуре, пользователю они представляются в виде иерархической структуры - людям так удобнее, а все необходимые преобразования берет на себя операционная система. К функции обслуживания файловой структуры относятся следующие операции, происходящие под управлением операционной системы:

  1. Создание файлов и присвоение им имен.

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

  1. Создание каталогов (папок) и присвоение им имен.

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

  1. Переименование файлов и каталогов (папок);
  2. Копирование и перемещение файлов между дисками компьютера и между каталогами (папками) одного диска.

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

  1. Удаление файлов и каталогов (папок).

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

  1. Навигация по файловой структуре с целью доступа к заданному файлу, каталогу (папке).

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

  1. Управление атрибутами файлов.

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

Управление приложениями

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

Служебные приложения в составе ОС

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

Средства проверки дисков

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

Средства управления виртуальной памятью

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

Средства кэширования дисков

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

Средства резервного копирования данных

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

Средство шифрования диска

Новая функция в современных ОС. Позволяет защитить данные, находящиеся на диске от потери и кражи. Функция выполняет шифрование всего жесткого диска, на котором хранится ОС и другие данные.

Средство поиска

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

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

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

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

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

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

Заключение

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

Список литературы

  1. Назаров, С. В. Современные операционные системы: учебное пособие / С.В. Назаров, А. И. Широков. - Москва: Национальный Открытый Университет «ИНТУИТ», 2012. - 367 с.
  2. Сафонов В.О. Перспективы операционных систем и сетей [Электронный ресурс]. - ссылка: http://www.intuit.ru/studies/courses/641/497/lecture/11328
  3. Архитектура, назначение и функции операционных систем [Электронный ресурс]: Лекция 1 / Национальный открытый университет «ИНТУИТ» - Москва, 2015. - Ссылка: http://www.intuit.ru/studies/courses/631/487/lecture/11048
  4. Даровский, Н.Н. Перспективы развития операционных систем [Электронный ресурс] / Н.Н. Даровский // интернет-портал Web-3. - 2015. Ссылка: http://system.web-3.ru/windows/?act=full&id_article=12055
  5. Дейтел Г. Введение в операционные системы: В 2 т. / Пер. с англ. Л. А. Теплицкого, А. Б. Ходулева, В. С. Штаркмана; Под ред. В. С. Штаркмана. - М.: Мир, 1987.
  6. Иртегов Д. В. Введение в операционные системы. - СПб.: БХВ-Петербург, 2002. 624 с.
  7. Кейлингерт П. Элементы операционных систем. Введение для пользователей / Пер. с англ. Б. Л. Лисса и С. П. Тресковой. - М.: Мир, 1985. 295 с.
  8. Краковяк С. Основы организации и функционирования ОС ЭВМ. - М.: Мир, 1988. 480 с.
  9. Гордеев А.В. Операционные системы: учебник для вузов 2-е изд. / А.В. Гордеев - СПб.: Питер, 2009 - 416 с.
  10. Фодор Ж., Бонифас Д., Танги Ж. Операционные системы - от PC до PS/2 / Пер. с франц. - М.: Мир, 1992. 319 с.
  11. Таненбаум Э. Современные операционные системы. 2-е изд. - СПб.: Питер, 2002. 1040 с.
  12. Карпов В.Е., Коньков К.А Основы операционных систем / Интернет-университет Информационных технологий. Москва, 2004, 632 с
  13. Симонович С.В. Информатика: Базовый курс / С. В. Симонович и др. - СПб.: Питер, 2003. - 640 с.: ил.