Skip to content

Instantly share code, notes, and snippets.

Created August 29, 2017 00:27
Show Gist options
  • Save anonymous/2a2025a9fe8dbc10e420d4ccd3bca7c0 to your computer and use it in GitHub Desktop.
Save anonymous/2a2025a9fe8dbc10e420d4ccd3bca7c0 to your computer and use it in GitHub Desktop.
Основные понятия ос

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


= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Файл: >>>>>> Скачать ТУТ!
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =


Введение
Основные понятия операционных систем (ОС)
Основные понятия и определения операционной системы


























Существуют две группы определений ОС: Обе они имеют свой точный технический смысл, который, однако, становится ясен только при более детальном рассмотрении вопроса о том, зачем вообще нужны операционные системы. Иногда под назначением ОС подразумевают распределение и планирование ресурсов или динамическое и статическое распределение ресурсов. ОС — [набор программных средств] [организованная совокупность программ систем ], предназначенная ный для управления ресурсами вычислительной системы и действует как интерфейс между аппаратурой и пользователями. Таким образом, на первый план определение 1 выдвигает проблему распределения ресурсов рис. Причем под ресурсами понимают не только традиционные виды ресурсов, как время работы отдельных устройств например, процессорное время , пространство памяти различных уровней, функции отдельных устройств, наборы данных, но и отдельные программы и комплексы программ, допускающие совместное использование, а иногда и пользователя например, запрос на выполнение определенной функции. Cторонники определений типа 1 исходят из некоторой модели вычислительного процесса, в котором параллельно действуют несколько участников задач, процессов, заданий, пользователей и др. Другая группа определений характеризуется функциональным подходом. В этом случае ОС представляется перечислением функций, которые она должна выполнять рис. ОС является посредником связующим звеном, интерфейсом между ЭВМ, с одной стороны, и человеком пользователем, программистом, оператором, инженером и т. Другими словами, ОС - логическое расширение функций аппаратуры в сторону человека. Она позволяет от "физического" уровня аппаратуры перейти к более высокому "логическому" уровню, который становится уровнем вычислительной системы и который более удобен для человека рис. ОС позволяет абстрагироваться от деталей реализации аппаратного обеспечения, предоставляя разработчикам программного обеспечения минимально необходимый набор функций. С точки зрения обычных пользователей компьютерной техники ОС включает в себя и программы пользовательского интерфейса. Как то на паре, один преподаватель сказал, когда лекция заканчивалась - это был конец пары: Cхема функциональной системы, обеспечивающей выделение мочи из организма. Основные производственные фонды — это часть производственных фондов, которая I. Соотнесите фамилии ученых, философов, политиков и данные ими определения государства. Соотнесите фамилии ученых, философов, политиков и данные ими определения правового государства. Определение понятия деятельности II. Основные виды деятельности и их развитие у человека. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права?


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


Для каждой операционной системы существует набор базовых понятий, например процессы, память и файлы, которые являются самыми важными для понимания общей идеи. Рассмотрим некоторые основные понятия, иллюстрируя их в основном на примере ОС UNIX. Ключевое понятие операционной системы — процесс. Содержательно процесс — это программа в момент её выполнения. Отличие процесса от программы, записанной, но не исполняющейся в данный момент, заключается в следующем. С каждым процессом связывается некий набор регистров, в том числе счетчик команд, указатель стека и другие аппаратные регистры, а также вся остальная информация, необходимая для запуска процесса. Большинство современных систем может выполнять несколько процессов одновременно. Например, пользователь может запустить программу проигрыватель музыки и включить свою рабочую программу, чтобы выполнять необходимые ему работы под музыку. Кроме того, во время работы пользователя происходит работа множества сервисных программ: Следует понимать, что один исполнитель процессор одновременно может выполнять лишь одно действие. То есть, одновременно исполнение программ — это иллюзия. Выполнение программ на одном процессоре с иллюзией одновременного выполнения также называют псевдопараллельным. Эффект одновременности возможен благодаря тому, что процессор может выполнять большое количество операций в единицу времени 9. Таким образом, если каждому процессу предоставлять какой-то небольшой интервал времени часть секунды, к примеру , то за это время процесс успеет выполнить достаточную свою часть. Поскольку такие интервалы времени, на которые делится процессорное время их ещё называют квантами очень малы — пользователь не успевает заметить поочерёдность выполнения, у него складывается впечатление одновременного выполнения нескольких программ. Процесс — в общем случае, это программа, находящаяся в памяти и получившая управление, выполняющаяся программа. Более точное определение процесса можно дать лишь для конкретной операционной системы. Область памяти, определяемая адресным пространством процесса, содержит код, данные и стек программы. Контекст процесса есть вектор-функция времени. В процессе работы ОС осуществляет запуск, диспетчеризацию и завершение процессов. К диспетчеризации относится, в том числе, переключение процессов. Переключение процессов подразумевает приостановку одного процесса и передачу управления другому. Если процесс был приостановлен подобным образом, позже он должен быть запущен заново из того же состояния, в каком его остановили. Подобного рода возобновление возможно засчет сохранения в некоторой области памяти летучей среды процесса контекста процесса , при его остановке. Пусть Цезарь выполняет одновременно два процесса. Чтобы процессы выполнялись параллельно, Цезарь делает по небольшой части каждого из них, попеременно переключаясь. Процесс A— игра в шахматы. ПроцессB— чтение трактата Платона. Чтобы вернуться к выполнению процесса Aс того же места, на котором он был прерван, Цезарю необходимо знать шахматную позицию на доске и очерёдность хода. Чтобы вернуться к выполнению процесса B, необходимо помечать место, на котором Цезарь остановился при чтении, и возвращаясь, продолжать чтение с помеченного места. В данном примере контекст процесса A— позиции фигур на шахматной доске и очерёдность хода, контекст процессаB— пометка места на котором остановлено чтение абзац, строка, предложение. Аккуратно сохраняя контекст каждого из процессов, Цезарь сможет выполнять оба процесса параллельно. Во многих операционных системах вся информация о каждом процессе естественно кроме содержимого адресного пространства процесса хранится в таблице, организованной операционной системой. Такая таблица называется таблицей процессов и представляет собой массив или связный список структур, по одной на каждый существующий в данный момент времени процесс. Процесс может создавать несколько других процессов они называются дочерними процессами , а породивший их процесс по отношению к ним называется материнским , а те в свою очередь могут создавать свои дочерние процессы. Таким образом, образуется дерево процессов. Как правило, дочерние процессы создаются материнскими для осуществления некоторой задачи, а значит процессам необходимо взаимодействовать. Такая связь называется межпроцессорным взаимодействием IPC—interprocesscommunication и состоит в передаче данных от одного процесса к другому, контроле деятельности процессов, синхронизации действий. При этом контроль деятельности процессов обеспечивает распределение ресурсов и управление доступом, а синхронизация подразумевает совмещение процессов во времени особым образом, и устранение возможных негативных эффектов, например эффекта гонок. С момента запуска процесс последовательно переживает определённый набор состояний в той или иной очередности:. Готовность — процесс временно приостановлен, чтобы позволить выполняться другим процессам при это других объективных причин для невыполнения данного процесса может не существовать. Блокировка — процесс не может выполняться до тех пор, пока не произойдёт некоторое внешнее относительно этого процесса событие например, пока не освободится устройство ввода-вывода или пока от другого процесса не будут получены необходимые для выполнения данные. В некоторых операционных системах каждому процессу соответствует адресное пространство и один поток команд собственно программа , называемый управляющим потоком. По сути это и есть процесс. На деле, часто удобно иметь несколько параллельных псевдопараллельных управляющих потоков в одном и том же адресном пространстве. Рассмотренное понятие процесса базируется на двух независимых концепциях: Иногда полезно разделять эти концепции. В результате приходим к понятию потока. Потоком или управляющим потоком будем называть последовательность команд, со связанным с нею указателем команд. Детально рассмотрим отличие понятий потока и процесса. Процесс подразумевает группировку ресурсов при запуске процесса, он требует от системы какие-то ресурсы. Когда необходимые ресурсы в том числе процессорное время выделены процессу, запускается управляющий поток то есть процесс непосредственно исполняется. Поток подразумевает лишь исполнение управляющего потока. При этом, по сути в рамках одного процесса могут выполняться несколько потоков. Объединение в процессе нескольких потоков обеспечивает всем потокам одни и те же ресурсы и совместную работу с ними. Такой подход оказывается очень удобным. Например, рассмотрим текстовый редактор. Запущен один процесс — текстовый редактор. В рамках этого процесса запущено три потока: Все потоки, запущенные в рамках процесса текстового редактора используют одни и те же ресурсы — введённые пользователем текст, при этом каждый по-своему обрабатывает этот текст. Такой подход очень удобен и на стадии проектирования. Однажды определив, каким образом потоки будут взаимодействовать между собой, можно проектировать соответствующие потоки независимо друг от друга, соблюдая лишь договорённости о взаимодействии. При запуске многопоточного процесса в системе с одним процессором потоки работают поочередно. Пример работы процессов в многозадачном режиме был показана на рис. Reference source not found. Иллюзия параллельной работы нескольких различных последовательных процессов создается путем постоянного переключения системы между процессами. Многопоточность реализуется примерно так же. Процессор переключается между потоками, создавая впечатление параллельной работы потоков. Часто потоки используются обработки возникающих в системе и пользовательском приложении событий. Такие процессы называются всплывающими. После запуска в приложении выполняется лишь один поток. В момент возникновения какого-либо события "всплывает" поток, основной задачей которого является обработка произошедшего события. Допустим, программа написанная, скажем, на Delphi должна по нажатию кнопки "Копировать" на форме приложения, программа должна произвести резервное копирование большого количества файлов, при этом отображая ход этого резервного копирования на визуальной шкале progressbar. Когда программа запущена, и пользователь нажал кнопку "Копировать", происходит обработка события "Нажатие на кнопку". Пока это событие не обработано до конца, приложение не будет реагировать ни на одно другое внешнее событие. Соответственно, если копирование происходит длительное время больше нескольких секунд , операционная система сочтёт приложение зависшим. В частности, не будет осуществляться перерисовка окна приложения а там ведь должна отображаться визуальная шкала. Чтобы избежать такой ситуации, необходимо поступить следующим образом. При нажатии на кнопку "Копировать", приложение создаст новый управляющий поток, который должен будет осуществлять резервное копирование. При этом обработка события "Нажатие на кнопку" будет завершена, как только поток создан. После этого приложение готово реагировать на любые другие события. Созданный поток осуществляет резервное копирование. Поскольку оба потока работают в одном адресном пространстве, поток копирования может обращаться к элементу формы "визуальная шкала" и менять на ней значение. При этом приложение будет верно функционировать. Процессам и потокам необходимо взаимодействовать друг с другом. При этом возникает ряд ситуаций, требующих дополнительного регулирования. Например, если несколько процессов используют один и тот же ресурс, необходимо контролировать последовательность получения доступа, чтобы процессы работали корректно. Рассмотрим способы организации межпроцессорных взаимодействий. Пусть процессу необходимо вывести страницу или несколько страниц на печать, он помещает данные для печати в спулер в зависимости от операционной системы это может быть каталог, файл или область памяти. Другой процесс, отвечающий за печать, по очереди берёт переданные задания и выводит их на принтер. Тем самым снимается конкуренция за использование принтера различными процессами. Кроме того, процесс печати может решать по каким-либо определённым правилам в какой очерёдности следует пускать задания на печать. Заметим, что спулер в данном примере реализует межпроцессное взаимодействие, в котором множество процессов желающих вывести данные на принтер взаимодействуют через общий ресурс спулер с печатающим процессом. При этом ресурс "принтер" по сути монопольно занят один единственным печатающим процессом. В случае взаимодействия двух произвольных процессов, не всегда возможно организовать в операционной системе специальный процесс для регулирования этих взаимодействий. Чтобы решить задачи взаимодействий на совместно используемых ресурсах вводят некоторые специальные понятия. Два и более процессов, использующих один и тот же общий ресурс не состязаются за этот ресурс тогда и только когда, когда в критической секции, связанной с этим ресурсом одновременно находится не более чем один из этих процессов. В самом деле, часть времени процесс занимается внутренними расчётами и не использует общий ресурс. Как только этот процесс входит в критическую секцию, то есть происходит работа с общим ресурсом, об этом особым образом становится известно. Если в это время пока первый процесс не вышел из критической секции какой-либо другой процесс попробует войти в критическую секцию то есть начать работать с общим ресурсом , ему будет в этом отказано. Точнее, второй процесс будет приостановлен до тех пор, пока первый не выйдет из критической секции. Это можно проиллюстрировать на рисунке. Теоретическая концепция критических областей имеет несколько стандартных реализаций, применяемых в различных операционных системах. Подробно рассмотрим лишь некоторые из них. Если прерывания запрещены, то невозможно и переключение на другой процесс, который может состязаться за какие-либо ресурсы. Однако такой подход весьма неразумен, поскольку заранее не известно время, которое процесс будет находиться в критической области. Таким образом, пока пользовательский процесс в критической секции, не сможет произойти ни одна обработка, в том числе системных и неотложных событий. Если процессы используют один и тот же ресурс, разумно использовать некоторую общую переменную — переменную блокировки — которую изначально положить равной 0, а когда процесс будет входить в критическую область, он будет менять значение этой переменной на 1. Таким образом, если некоторый процесс хочет войти в критическую секцию, а переменная блокировки равна 1, процесс будет ожидать до тех пор, пока переменная блокировки не обратится в 0, что будет означать в критической секции не находится ни одного процесса. Кроме рассмотренных можно назвать распространённые реализации: В простейших случаях концепция критических секций отлично срабатывает. Но существует ряд ситуаций, когда критических секций не достаточно. Проблема производителя и потребителя. Пусть два процесса совместно используют буфер ограниченного размера. Один из процессов помещает в буфер информацию назовём этот процесс производителем , а другой читает информацию из буфера назовём этот процесс потребителем. Трудность возникнет в тот момент, когда производитель заполнит буфер целиком. Решение очевидно, производитель должен ожидать пока потребитель прочтёт частично или полностью информацию из буфера. Аналогичная трудность возникнет, когда потребитель обратится к буферу для чтения и обнаружит, что буфер пуст. В этом случае потребитель должен ждать, пока производитель не поместит информацию в буфер. Решение кажется достаточно простым, но приводит к состязательному состоянию двух процессов, даже при использовании критических секций в реализации производителя и потребителя. Дело в том, что для учёта заполненности буфера необходимо использовать какую-то общую для производителя и потребителя переменную. И как раз за эту переменную процессы будут состязаться. Можно ввести вспомогательный механизм, решающий задачу, например, установить бит активации, указывающий можно ли получать доступ к счётчику заполненности буфера. Однако можно смоделировать ситуацию с несколькими процессами, когда это решение не будет работать. Требуется сформулировать более общий подход. Dijkstra предложил использовать специальную переменную целого типа, получившую название — семафор. Семафор связывается с совместно используемым ресурсом. Каждое обращение к ресурсу абстрактно будем называть сигналом активизации. Семафор — это неотрицательная целочисленная переменная, связанная с совместно используемым ресурсом, которая может быть нулём в случае отсутствия сохранённых сигналов активизации или некоторым положительным числом, соответствующим количеству отложенных сигналов активизации. Если значение семафора равно нулю, процедураdown не возвращает управление процессу, а процесс переводится в состояние ожидания. При этом если с этим семафором связаны один или более ожидающих процессов, которые не могут завершить более раннюю операциюdown , а это означает что значение семафора равно 0, один из ожидающих процессов будет выбран системой и ему будет разрешено завершитьdown. Мьютекс —это семафор, находящийся в одном из двух возможных состояний: Если процесс должен войти в критическую секцию, и мьютекс не заблокирован, процесс входит в критическую секцию, при этом заблокировав мьютекс. Если мьютекс заблокирован, вызывающий процесс блокируется до тех пор, пока процесс, работающий в критической области, не выйдет из неё. В представленном в примере решении используются три семафора: Значение счетчика fullисходно равно нулю, счетчик empty равен числу сегментов в буфере, a mutex равен 1. Рассмотрим действия обоих процессов пошагово. Процесс производитель producer создаёт новый элемент, чтобы потом поместить его в буфер. Следующим шагом семафор, указывающий количество свободных элементов буфера уменьшается. При этом если уменьшить этот семафор нельзя в случае, когда он равен нулю , производитель будет ожидать, пока не появится хоть один свободный элемент. Если же уменьшение прошло удачно, производитель сообщает о том, что он входит в критическую секцию вход будет произведён лишь в том случае, если потребитель не находится в критической секции. Исполняя критическую секцию, производитель помещает созданный элемент в буфер, после чего сообщает о выходе из критической секции и увеличивает семафор, отражающий число заполненных элементов буфера. Процесс потребитель consumer уменьшает значение семафора, указывающее количество занятых элементов буфера. При этом, если семафор нельзя уменьшить он равен нулю , потребитель будет ожидать, пока в буфере не появится хоть один заполненный элемент. Если уменьшение прошло успешно, потребитель уменьшает мьютекс, тем самым сообщая о входе в критическую секцию. Вход в критическую секцию произойдёт только если производитель не находится в критической секции, в противном случае потребитель будет ожидать, пока производитель не выйдет из критической секции. Исполняя критическую секцию, потребитель забирает из буфера элемент, после чего сообщает о выходе из критической секции и увеличивает семафор, отражающий число свободных элементов буфера. Завершающим этапом, потребитель обрабатывает полученный из буфера элемент. В примере семафоры использовались двумя различными способами. Это различие достаточно значимо, чтобы сказать о нем особо. Семафор mutex используется для реализации взаимного исключения, то есть для исключения одновременного обращения к буферу и связанным переменным двух процессов. FAQ Обратная связь Вопросы и предложения. Upload Опубликованный материал нарушает ваши авторские права? Саратовский государственный университет им. Основные понятия операционной системы Для каждой операционной системы существует набор базовых понятий, например процессы, память и файлы, которые являются самыми важными для понимания общей идеи. Процессы и потоки Ключевое понятие операционной системы — процесс. Юлий Цезарь Пусть Цезарь выполняет одновременно два процесса. Аккуратно сохраняя контекст каждого из процессов, Цезарь сможет выполнять оба процесса параллельно Во многих операционных системах вся информация о каждом процессе естественно кроме содержимого адресного пространства процесса хранится в таблице, организованной операционной системой. С момента запуска процесс последовательно переживает определённый набор состояний в той или иной очередности: Выполнение — состояние когда процесс непосредственно исполняется на процессоре Готовность — процесс временно приостановлен, чтобы позволить выполняться другим процессам при это других объективных причин для невыполнения данного процесса может не существовать. Потоки В некоторых операционных системах каждому процессу соответствует адресное пространство и один поток команд собственно программа , называемый управляющим потоком. Длительная обработка события Допустим, программа написанная, скажем, на Delphi должна по нажатию кнопки "Копировать" на форме приложения, программа должна произвести резервное копирование большого количества файлов, при этом отображая ход этого резервного копирования на визуальной шкале progressbar. Межпроцессное взаимодествие Процессам и потокам необходимо взаимодействовать друг с другом. Спулер spooler Пусть процессу необходимо вывести страницу или несколько страниц на печать, он помещает данные для печати в спулер в зависимости от операционной системы это может быть каталог, файл или область памяти. Переменные блокировки Если процессы используют один и тот же ресурс, разумно использовать некоторую общую переменную — переменную блокировки — которую изначально положить равной 0, а когда процесс будет входить в критическую область, он будет менять значение этой переменной на 1. Над семафорами определены две операции:


Ао бинбанк кредитные карты москва
Самоделки мотособаки своими руками видео
Песочные пляжи в крыму где
Мировые новости 20 06 2017
План индивидуальной работы с учащимися группы
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment