Файл: Функции операционных систем компьютеров.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 30.03.2023

Просмотров: 148

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

В версиях 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с.