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

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

Содержание:

Введение

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

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

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

Объектом работы являются операционные системы, предметом – основные выполняемые ими функции.

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

Для достижения сформулированной цели необходимо рассмотреть следующие вопросы:

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

1. Общие сведения об операционных системах

1.1. Что такое операционная система

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

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

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

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

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

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

Операционные системы предназначены не только для ПК

Когда мы говорим "компьютеры" под управлением операционных систем, мы имеем в виду не только традиционные настольные ПК и ноутбуки. Ваш смартфон – это компьютер, а также планшеты, смарт-телевизоры, игровые консоли, смарт-часы и маршрутизаторы Wi-Fi. Amazon Echo или Google Home – это вычислительные устройства, на которых работает операционная система.

Знакомые настольные операционные системы включают Microsoft Windows, Apple macOS, Google Chrome OS и Linux. Доминирующими операционными системами для смартфонов являются iOS от Apple и Android от Google.

Другие устройства, такие как ваш маршрутизатор Wi-Fi, могут работать под управлением «встроенных операционных систем». Это специализированные операционные системы с меньшим количеством функций, чем обычная операционная система, разработанная специально для одной задачи – например, запуск маршрутизатора Wi-Fi, обеспечение GPS-навигации или управление банкоматом.

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

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

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

Центром операционной системы является ядро

На низком уровне «ядро» - это основная компьютерная программа, лежащая в основе вашей операционной системы. Эта единственная программа является одной из первых вещей, загруженных при запуске операционной системы. Она обрабатывает выделение памяти, преобразование программных функций в инструкции для процессора вашего компьютера, а также занимается вводом и выводом с аппаратных устройств. Ядро обычно выполняется в изолированной области, чтобы предотвратить его подделку другим программным обеспечением на компьютере. Ядро операционной системы очень важно, но это только одна часть операционной системы [12].

Разделение здесь также может быть нечётким. Например, Linux – это всего лишь ядро. Однако Linux все еще часто называют операционной системой. Android также называют операционной системой, и она построена вокруг ядра Linux. Дистрибутивы Linux, такие как Ubuntu, берут ядро Linux и добавляют вокруг него дополнительное программное обеспечение. Их тоже называют операционными системами.

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

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

Граница между прошивкой и операционной системой также может быть немного размытой. Например, операционную систему для iPhone и iPad Apple, названную iOS, часто называют «прошивкой». Операционная система PlayStation 4 также официально называется прошивкой.

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

Обычный человек не обязан точно понимать, что такое операционная система. Тем не менее, может быть полезно знать, с какой операционной системой вы должны знать, с каким программным и аппаратным обеспечением совместимо ваше устройство [11].

1.2. Виды и типы операционных систем

Большинство людей используют операционную систему, которая поставляется с их компьютером, но можно обновить или изменить операционную систему. Тремя наиболее распространенными операционными системами для персональных компьютеров являются Microsoft Windows, macOS и Linux.

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

графический интерфейс windows

Рисунок 1.1. Интерфейс Windows 10

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

Microsoft Windows

Microsoft создала операционную систему Windows в середине 1980-х гг. Было много различных версий Windows, но самыми последними из них являются Windows 10 (выпущена в 2015 г.), Windows 8 (2012 г.), Windows 7 (2009 г.) и Windows Vista (2007 г.). Windows поставляется с большинством новых компьютеров, и во многом благодаря этому является одной из самых популярных ОС.

Windows 7

Рисунок 1.2. Интерфейс Windows 7

macOS (ранее называвшаяся OS X) - это линейка операционных систем, созданных компанией Apple. Он поставляется с предварительной загрузкой на всех компьютерах Macintosh или Mac. Некоторые из конкретных версий включают Mojave (выпущен в 2018 году), High Sierra (2017) и Sierra (2016).

Согласно статистике StatCounter Global, на долю пользователей macOS приходится менее 10% глобальных операционных систем—значительно меньше, чем на долю пользователей Windows (более 80%). Одна из причин этого заключается в том, что компьютеры Apple, как правило, дороже. Тем не менее, многие люди предпочитают внешний вид macOS над Windows.

Mac OS X Lion

Рисунок 1.3. Интерфейс MacOS X

Linux 

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

Согласно статистике StatCounter Global, на долю пользователей Linux приходится менее 2% глобальных операционных систем. Тем не менее, большинство серверов работают под управлением Linux, потому что их относительно легко настроить.

Ubuntu Linux

Рисунок 1.4. Интерфейс Linux

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

Операционные системы, о которых мы говорили до сих пор, были разработаны для работы на настольных компьютерах и ноутбуках. Мобильные устройства, такие как телефоны, планшетные компьютеры и MP3-плееры, отличаются от настольных и портативных компьютеров, поэтому на них работают операционные системы, разработанные специально для мобильных устройств. Примеры мобильных операционных систем включают Apple iOS и Google Android. На рисунке ниже можно увидеть iOS работает на iPad.

скриншот Apple iOS работает на iPad

Рисунок 1.5. Интерфейс iOs

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

1.3. Состав и назначение компонентов операционной системы

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

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

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

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

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

Рисунок 1.6. Основные компоненты операционной системы

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

Ядро.

Ядро дает один из самых фундаментальных уровней контроля над всеми аппаратными устройствами компьютера. Ядро является центральным компонентом операционной системы (ОС). Это компонент операционной системы, который загружается изначально и остается в оперативной памяти. Оно управляет доступностью памяти для программ в оперативной памяти, определяет, какие программы получают доступ к каким аппаратным ресурсам. Устанавливает или сбрасывает рабочие состояния процессора для оптимальной работы в любое время [6].

Выполнение процессов.

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

Прерывания.

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

Управление памятью.

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

Мы можем разделить работу Управления Памятью на 3 существенные группы:

  1. Управление аппаратной памятью.
  2. Управление памятью ОС (операционной системы).
  3. Управление памятью приложений.

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

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

Работа с сетью.

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

Безопасность.

Если к системе имеет доступ несколько человек, и она позволяет одновременно работать с несколькими процессами, то многочисленные процессы должны быть защищены от действий друг друга. Безопасность и надежность компьютерной системы зависит от эффективности работы различных технологий. Современная операционная система предоставляет доступ к ряду ресурсов, которые легко доступны для программного обеспечения, работающего в системе, и к внешним устройствам, таким как сети, посредством ядра. Операционная система должна быть способна различать требования, которые должны быть обработаны, и другие, которые не должны быть обработаны. В дополнение к разрешению или запрету версий безопасности, система с высоким уровнем защиты также предоставляет возможности аудита. Это позволит контролировать запросы на доступ к ресурсам (например, «кто прочитал этот файл?») [9].

Интерфейс пользователя.

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

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

2.1. Управление памятью

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

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

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

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

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

2.2. Управление процессором. Многозадачность

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

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

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

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

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

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

2.3. Управление устройствами

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

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

В версиях Windows до Vista и Linux до 2.6 все выполнение драйверов было совместным, а это означает, что если драйвер входит в бесконечный цикл, то это приводит к зависанию системы. Более поздние версии этих операционных систем включают преемственность ядра, когда ядро прерывает драйвер, чтобы дать ему задачи, а затем отделяет себя от процесса до тех пор, пока он не получит ответ от драйвера устройства или не даст ему больше задач.

2.4. Управление файлами и доступ к диску

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

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

В то время как многие более простые операционные системы поддерживают ограниченный набор вариантов доступа к системам хранения, такие операционные системы, как UNIX и Linux, поддерживают технологию, известную как виртуальная файловая система или VFS. Такие операционные системы, как UNIX, поддерживают широкий спектр устройств хранения данных, независимо от их конструкции или файловых систем, что позволяет получить доступ к ним через общий интерфейс прикладного программирования (API). Это делает ненужным, чтобы программы обладали какими-либо знаниями об устройстве, к которому они обращаются. VFS позволяет операционной системе предоставлять программам доступ к неограниченному количеству устройств с бесконечным разнообразием установленных на них файловых систем, используя специальные драйверы устройств и файловой системы.

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

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

Различия между файловыми системами затрудняют поддержку всех файловых систем. Разрешенные символы в именах файлов, чувствительность к регистру и наличие различных видов файловых атрибутов делают реализацию единого интерфейса для каждой файловой системы сложной задачей. Операционные системы, как правило, рекомендуют использовать (и поэтому поддерживают нативный) файловые системы, специально разработанные для них; например, NTFS в Windows и ext3 и ReiserFS в Linux. Однако на практике драйверы сторонних производителей, как правило, доступны для поддержки наиболее широко используемых файловых систем в большинстве операционных систем общего назначения (например, NTFS доступна в Linux через NTFS-3g, а ext2/3 и ReiserFS доступны в Windows через стороннее программное обеспечение).

Поддержка файловых систем сильно варьируется среди современных операционных систем, хотя существует несколько общих файловых систем, для которых практически все операционные системы включают поддержку и драйверы. Операционные системы различаются по поддержке файловых систем и форматам дисков, на которые они могут быть установлены. Под Windows каждая файловая система обычно ограничена в применении на определенных носителях; например, компакт-диски должны использовать ISO 9660 или UDF, а начиная с Windows Vista, NTFS является единственной файловой системой, на которую может быть установлена операционная система. Можно установить Linux на многие типы файловых систем. В отличие от других операционных систем, Linux и UNIX позволяют использовать любую файловую систему независимо от носителя, на котором она хранится, будь то жесткий диск, диск (CD, DVD...), USB флэш-накопитель или даже файл, находящийся в другой файловой системе.

3. Практическая часть. Пример использования многозадачности

3.1. Описание приложения

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

3.2. Исходный код

using System;

using System.Globalization;

using System.Runtime.Versioning;

using System.Threading;

using System.Threading.Tasks;

public class Example

{

public static void Main()

{

decimal[] values = { 163025412.32m, 18905365.59m };

string formatString = "C2";

Func<String> formatDelegate = () => {

string output = String.Format("Formatting using the {0} culture on thread {1}.\n",

CultureInfo.CurrentCulture.Name,

Thread.CurrentThread.ManagedThreadId);

foreach (var value in values)

output += String.Format("{0} ", value.ToString(formatString));

output += Environment.NewLine;

return output;

};

Console.WriteLine("The example is running on thread {0}",

Thread.CurrentThread.ManagedThreadId);

// Make the current culture different from the system culture.

Console.WriteLine("The current culture is {0}",

CultureInfo.CurrentCulture.Name);

if (CultureInfo.CurrentCulture.Name == "fr-FR")

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");

else

Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR");

Console.WriteLine("Changed the current culture to {0}.\n",

CultureInfo.CurrentCulture.Name);

// Execute the delegate synchronously.

Console.WriteLine("Executing the delegate synchronously:");

Console.WriteLine(formatDelegate());

// Call an async delegate to format the values using one format string.

Console.WriteLine("Executing a task asynchronously:");

var t1 = Task.Run(formatDelegate);

Console.WriteLine(t1.Result);

Console.WriteLine("Executing a task synchronously:");

var t2 = new Task<String>(formatDelegate);

t2.RunSynchronously();

Console.WriteLine(t2.Result);

}

}

3.3. Результат выполнения

Результат работы программы следующий.

Рисунок 3.1. Выполнение программы

Заключение

В процессе написания данной задачи были решены следующие задачи.

Даны общие сведения об операционных системах, их видах, составе и назначении компонентов.

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

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

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

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

Современные операционные системы (ОС) быстро устаревают, так как постоянно выходит новое программное обеспечение, и новые разработки не стоят на месте. Два основных группы операционных систем: UNIX ОС (включая Linux, IOS/OSX и Android) и Windows, были построены десятки лет назад. Эти операционные системы были разработаны задолго до того, как люди могли понять, что ОС постоянно будут обновляться благодаря современным мобильным вычислениям, беспроводным функциям компьютеров и многому другому. UNIX была первоначально разработана для серверов в 1960 году. Ошибки этой системы с 1970 были использованы в современных атаках. Как мы можем продолжать вводить новшества с таким устаревшим программным обеспечением наших компьютеров? Необходимо что-то принципиально новое.

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

Список использованных источников

  1. Coulouris G., Dollimore J., Kindberg T. Distributed Systems. Concepts and Design. Addison-Wesley Publishing Company, 1995, 644 p.
  2. H. Baala, O. Flauzac, J. Gaber, M. Bui and T. El-Ghazawi. A self-stabilizing distributed algorithm for spanning tree construction in wireless ad hoc networks. Journal of Parallel and Distributed Computing, 63 (2003) 97-104
  3. Jiannong Cao, Yudong Sun, Xianbin Wang and Sajal K. Das. Scalable load balancing on distributed web servers using mobile agents.Journal of Parallel and Distributed Computing, 63 (2003) 996-1005
  4. Ras Z.W., Dardzinska A. Ontology-based distributed autonomous knowledge systems, Information Systems 29 (2004) 47–58.
  5. Yu-Kwong Kwok and Lap-Sun Cheung. A new fuzzy-decision based load balancing system for distributed object computing/Journal of Parallel and Distributed Computing, 64 (2004) 238-253
  6. Белов, В. В. Проектирование информационных систем [Текст]: учеб. / В.В. Белов, В.И. Чистякова; под ред. В.В. Белова. - Москва: Академия, 2013. - 351, [1] с.
  7. Бородакий, Ю. В. Эволюция информационных систем (современное состояние и перспективы) [Текст] / Ю. В. Бородакий, Ю. Г. Лободинский. - М.: Горячая линия-Телеком, 2011. - 368 с.
  8. Васильев, Р. Б. Управление развитием информационных систем [Текст]: учеб. - метод пособие / Р. Б. Васильев, Г. Н. Калянов, Г. А. Лёвочкина. - М.: Горячая линия-Телеком, 2009. - 375с.
  9. Вдовенко, Л. А. Информационная система предприятия [Текст]: учеб. пособие / Л. А. Вдовенко. - М.: Вуз. учебник: ИНФРА-М, 2012. - 236с.
  10. Душин, В. К. Теоретические основы информационных процессов и систем [Текст]: учебник / В. К. Душин. - 3-е изд. - М.: Издат. -торг. корпорация "Дашков и К", 2009. - 348с.
  11. Интеллектуальные навигационно-телекоммуникационные системы управления подвижными объектами с применением технологии облачных вычислений [Текст]: моногр. / Н. Г. Марков, Д. М. Сонькин, А. С. Фадеев, А. О. Шемяков, Т. Т. Газизов. - Москва: Горячая линия-Телеком, 2014. - 158 с. : ил.
  12. Исаев, Г. Н. Информационные системы в экономике [Текст]: учеб. пособие / Г. Н. Исаев. - М.: Омега-Л, 2006. - 462с.
  13. Исаев, Г. Н. Информационные технологии [Текст]: учеб. пособие / Г. Н. Исаев. - М.: Омега-Л, 2012. - 464с.
  14. Калинкина, Т. И. Телекоммуникационные и вычислительные сети. Архитектура, стандарты и технологии [Текст]: учеб. пособие / Т. И. Калинкина, Б. В. Костров, В. Н. Ручкин. - СПб. БХВ-Петербург, 2010. - 283с. - 228 р., 220 р.
  15. Королев Л.Н., Миков А.И. Информатика. Введение в компьютерные науки. – М.: высшая школа, 2003.
  16. Миков А.И. Основы построения региональной распределенной информационной системы образования и науки. // Математика программных систем: Межвуз. сб. науч. тр./ Перм. ун-т. – Пермь, 2002. С. 4 – 24.
  17. Олейник, П. П. Корпоративные информационные системы [Текст]: учебник / П. П. Олейник. - СПб.: ПИТЕР, 2012. - 175с.
  18. Павлова, Е. А. Технологии разработки современных информационных систем на платформе Microsoft.NET [Текст]: учеб. пособие / Е. А. Павлова. - М.: Интернет-Ун-т Информ. Технологий: Бином. Лаборатория знаний, 2009. - 111с.
  19. Сафонов, В. О. Платформа облачных вычислений Microsoft Windows Azure [Текст]: учеб. пособие / В. О. Сафонов. - Москва: Интернет-Ун-т Информ. Технологий: Бином. Лаборатория знаний, 2013. - 234, [6] с. : ил.
  20. Танненбаум Э., Ван Стеен М. Распределённые системы. Принципы и парадигмы.-СПб.:Питер, 2003.-876с.
  21. Шидловский, С. В. Автоматическое управление. Перестраиваемые структуры в системах с распределенными параметрами [Текст]: монография / С. В. Шидловский. - Томск: Томск. гос. ун-т, 2007. - 171с.