Главная страница

1. Состав компьютерной системы


Скачать 213 Kb.
Название1. Состав компьютерной системы
Анкорotvety_osi.doc
Дата02.10.2018
Размер213 Kb.
Формат файлаdoc
Имя файлаotvety_osi.doc
ТипДокументы
#25356
страница1 из 4
  1   2   3   4

1. Состав компьютерной системы

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

6 уровней:

1. физический уровень: аппаратное обеспечение

2. микроархитектура: набор блоков, вып определ ф-ции (АЛУ)

3. машинный язык: набор команд, кот вып процессор и аппаратура

4. ОС: работа с аппаратурой

5. компиляторы, текстов редакторы, интерпритаторы команд

6. прогр приложения: web броузер, банковская с-ма.

1-3 оборудование; 4-5 с-ма программирования.
2. Функции операционной системы. . Операционная система как расширенная машина и менеджер ресурсов

Ф-ии современной ОС поддерживают :

мультипрограммный режим,

раб с виртуал. памятью,

многооконный интерфейс.

2 осн задачи ОС – расширение возможностей машины и управление её ресурсами
ОС как расширенная машина

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

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

Первый период (1945 -1955)

Известно, что компьютер был изобретен английским математиком Чарльзом Бэббиджем в конце 18 века. Известно также, что этот компьютер не имел операционной системы.

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

Второй период (1955 - 1965)

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

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

Третий период (1965 - 1980)

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

Для этого периода характерно также создание семейств программно-совместимых машин. Первым семейством программно-совместимых машин, построенных на интегральных микросхемах, явилась серия машин IBM/360. Построенное в начале 60-х годов это семейство значительно превосходило машины второго поколения по критерию цена/производительность. Вскоре идея программно-совместимых машин стала общепризнанной.

Однако, несмотря на необозримые размеры и множество проблем, OS/360 и другие ей подобные операционные системы машин третьего поколения действительно удовлетворяли большинству требований потребителей. Важнейшим достижением ОС данного поколения явилась реализация мультипрограммирования. Мультипрограммирование - это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются несколько программ. При этом каждая программа загружается в свой участок оперативной памяти, называемый разделом.

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

Четвертый период (1980 - настоящее время)

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

Компьютеры стали широко использоваться неспециалистами.

На рынке операционных систем доминировали две системы: MS-DOS и UNIX. Однопрограммная однопользовательская ОС MS-DOS широко использовалась для компьютеров, построенных на базе микропроцессоров Intel 8088, а затем 80286, 80386 и 80486. Мультипрограммная многопользовательская ОС UNIX доминировала в среде "не-интеловских" компьютеров, особенно построенных на базе высокопроизводительных RISC-процессоров.

В середине 80-х стали бурно развиваться сети персональных компьютеров, работающие под управлением сетевых или распределенных ОС.
4. ОС реального времени. Распределенные и сетевые ОС

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

Выполняют несколько ф-ций:

1. регулирование (определяемые параметры должны находиться в заданных диапазонах)

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

3.обеспечение безопасности. (если значения с датчиков превышают критические значения, то ход процесса должен быть остановлен)

Критерий для определ с-мы реал времени:

1. T-периодичность измерений

2. t-время, необходимое для обработки всей полученной информации, выдача импульса на исполнительное устройство.

ОС – ОС реал времени, если T>>t

2 типа ОС:

1. если действие должно происходить в течение заданного диапазона – ОС с жестким реальным временем

2. если допускаются пропуски, выход за пределы временного диапазона – гибкая с-ма реал времени.

Распределенные и сетевые ОС

Сетев. ОС: польз сетевых ОС знают о том, что есть другие комп, они могут удалённо подключ и польз их ресурсами. Кажд комп явл полностью автономным и независ от других. Облад собств списком пользоват. Реализ путём добавл малого куска кода к ОС (драйвер сет. Адапт)

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

Математик Дейстрох

1968г. – ОС под названием THE. Разделил функции на 13 уровней абстракции: самый нижний – уровень проводников, самый верхний – программные средства пользователя.
Основные принципы: 1) независимость для пользователя операции ввода/вывода для внешних устройств. 2) Сокрытие информации. Каждый уровень строится на основе уровней стоящих ниже, но скрывает действия от уровней находящихся выше.

6. Рыночные требования, предъявляемые к ОС

- расширяемость (возможность вносить изменения и дополнения не нарушая целостность с-мы)

- переносимость (возм переноса платформы с одной с-мы на другую или на более современный процессор)

- надёжность, отказоустойчивость (с-ма должна быть защищена от внутр и внешних ошибок)

- совместимость (ОС должна иметь ср-ва для исполнения программ, напис для др ОС)

- безопасность (с-ма должна обеспеч контроль доступа к ресурсам)

- с-ма должна обеспечить достаточную производительность
7. CISC и RISC процессоры, конвейерная обработка

Процессоры (по набору команд):

RISC – сокращённый набор команд. Большинство команд вып за одинаковое кол-во тактов, очень просто реализовать конвеерный метод обработки

CISC – сложный набор команд. Одной командой можно выполнить множество действий, сложно повышение производительности.

При конвейерной обработке на каждый такт вып одна команда.

1-загрузка 2-декодирование 3-исполнение 4-запись в память
9. Отличия рабочей станции от персональной ЭВМ

- в раб станции испол более мощный процессор RISC

- в раб стан быстродействующая графич с-ма

- все внешние устр-ва подключены по интерфейсу SCSI (в тч жёсткие диски)

- раб стан под управлением открытой ОС

- как правило готовы для работы в сети

- на них испол профессиональные пакеты для аэродинамич и прочностных расчётов, автоматиз проектирование.

10. Машинный язык, язык высокого уровня, достоинства и недостатки

Это язык программирования, содерж правила, кот реализ аппаратными ср-вами вычислит машины.

Символы машинных языков: 0 и1. Применяется для написания ОС.

Недостатки: аппаратно-зависимый код непригоден для использования на другом процессоре=> придумали языки высокого уровня - некая абстакция, кот позволяет скрыть тонкости работы с аппаратными ср-вами.
11. Системы управления вводом\выводом, спулинг

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

Физическая организация устройств ввода-вывода

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

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

ОС выполняет ввод-вывод, записывая команды в регистры контроллера. Например, контроллер гибкого диска IBM PC принимает 15 команд, таких как READ, WRITE, SEEK, FORMAT и т.д. Когда команда принята, процессор оставляет контроллер и занимается другой работой. При завершении команды контроллер организует прерывание для того, чтобы передать управление процессором операционной системе, которая должна проверить результаты операции. Процессор получает результаты и статус устройства, читая информацию из регистров контроллера.

Организация программного обеспечения ввода-вывода

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

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

Для решения поставленных проблем целесообразно разделить программное обеспечение ввода-вывода на четыре слоя:

-Обработка прерываний,

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

-Независимый от устройств слой операционной системы,

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

12. Основные понятия, концепция ОС

Системный вызов - интерфейс между ОС и программой пользователя. Работа с ним полностью идентична работе с подпрограммами.

Файл - некоторая область памяти на накопителе с данными пользователя. Это некая абстракция.

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

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

ОС_лекции_раздатка_введение_2_определения

Ядро ОС – тот набор программ который обеспечивает работу.

1) Монолитные системы – принцип одной большой программы.
«+» - такая система работает очень быстро

«-» - 1. сложно развивать, 2. сбой одного из модулей приводит к краху всей системы.

Разработчики таких ОС пытаться структурировать, но не смотря на это какая- либо структура отсутствует.
14. Ядро ОС. Микроядро//модуль клиент-сервер

Ядро ОС – тот набор программ который обеспечивает работу.
В самом ядре ОС остается минимальный необходимый набор функций:

- обработка систем вызовов

- механизм переключения между задачами

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

Это дает преимущества:

1. если происходит сбой в сетевой службе, то это максимум приводит к отказу этой сетевой службы, которая может быть перезапущена без перезапуска всей системы.

2. система стуктурирована (она содержит определенное кол-во модулей, которые можно поштучно заменить)

Недостатки: переключение ядро/приложение занимает определенное время.

15. Классификация ОС

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

однозадачные (например, MS-DOS, MSX) и

многозадачные (OC EC, OS/2, UNIX, Windows 95).
Поддержка многопользовательского режима. По числу одновременно работающих пользователей ОС делятся на:

однопользовательские (MS-DOS, Windows 3.x, ранние версии OS/2);

многопользовательские (UNIX, Windows NT).
Многопроцессорная обработка. Другим важным свойством ОС является отсутствие или наличие в ней средств поддержки многопроцессорной обработки - мультипроцессирование. Мультипроцессирование приводит к усложнению всех алгоритмов управления ресурсами.
В наши дни становится общепринятым введение в ОС функций поддержки многопроцессорной обработки данных. Такие функции имеются в операционных системах Solaris 2.x фирмы Sun, Open Server 3.x компании Santa Crus Operations, OS/2 фирмы IBM, Windows NT фирмы Microsoft и NetWare 4.1 фирмы Novell.
Многопроцессорные ОС могут классифицироваться по способу организации вычислительного процесса в системе с многопроцессорной архитектурой: асимметричные ОС и симметричные ОС. Асимметричная ОС целиком выполняется только на одном из процессоров системы, распределяя прикладные задачи по остальным процессорам. Симметричная ОС полностью децентрализована и использует весь пул процессоров, разделяя их между системными и прикладными задачами.
16. Мультипрограммирование или многозадачность, критерии организации мультизадачности

Мультипрограммирование (многозадачность) – способ организации вычислительного процесса при к-ром на одном процессоре попеременно выполняется сразу несколько программ. Эти программы совместно используют оперативную и внешнюю память, процессор, устр-ва ввода\вывода. Призвана повысить выполнение задач.
Критерии эффективности:

пропускная способность – кол-во задач, вып ОС в единицу времени

доступ раб пользователей – возможность интерактивно работать с неск программами на одной машине

реактивность с-мы – способность с-мы выдерживать заранее заданные интервалы времени между запуском программы и получение рез-тов.
Многозадачные ОС подразделяются на три типа в соответствии с использованными при их разработке критериями эффективности:

системы пакетной обработки (например, OC EC),

системы разделения времени (UNIX, VMS),

системы реального времени (QNX, RT/11).
Системы пакетной обработки предназначались для решения задач в основном вычислительного характера, не требующих быстрого получения результатов. Главной целью и критерием эффективности систем пакетной обработки является максимальная пропускная способность, то есть решение максимального числа задач в единицу времени.

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

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

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

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

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

Часто реализуется такая схема - один процессор является ведущим и на нем работает ОС, остальные предназначены только для вычислений.
18. Процессы. Основные понятия, состояния процессов

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

Состояние процессов

В многозадачной (многопроцессной) системе процесс может находиться в одном из трех основных состояний:

ВЫПОЛНЕНИЕ - активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором;

ОЖИДАНИЕ - пассивное состояние процесса, процесс заблокирован, он не может выполняться по своим внутренним причинам, он ждет осуществления некоторого события, например, завершения операции ввода-вывода, получения сообщения от другого процесса, освобождения какого-либо необходимого ему ресурса;

ГОТОВНОСТЬ - также пассивное состояние процесса, но в этом случае процесс заблокирован в связи с внешними по отношению к нему обстоятельствами: процесс имеет все требуемые для него ресурсы, он готов выполняться, однако процессор занят выполнением другого процесса.
В ходе жизненного цикла каждый процесс переходит из одного состояния в другое в соответствии с алгоритмом планирования процессов, реализуемым в данной операционной системе.
В состоянии ВЫПОЛНЕНИЕ в однопроцессорной системе может находиться только один процесс, а в каждом из состояний ОЖИДАНИЕ и ГОТОВНОСТЬ - несколько процессов, эти процессы образуют очереди соответственно ожидающих и готовых процессов. Жизненный цикл процесса начинается с состояния ГОТОВНОСТЬ, когда процесс готов к выполнению и ждет своей очереди.
Контекст и дескриптор процесса

На протяжении существования процесса его выполнение может быть многократно прервано и продолжено.
Дескриптор процесса

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

создать информационные структуры, описывающие данный процесс, то есть его дескриптор;

включить дескриптор нового процесса в очередь готовых процессов;

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

Прерывание - событие при к-ром меняется нормальная последовательность команд, вып процессором.

Действия:

1. управление передаётся ОС

2. ОС запоминает состояние прерванного процесса

3. ОС передаёт управление соотв программе, обработчику данного прерывания.

Прерывание:

1. аппаратные - происх от соотв аппаратуры ввода\вывода

2. программные - либо инициируется программой (запрос на системный вызов), либо ОС (истечение кванта времени)

Вектор прерывания: каждому типу прерывания соответствует адрес ячейки памяти. Адрес ячейки памяти - есть вектор прерывания.
20. Алгоритмы планирования процессов

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

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

Алгоритмы планирования процессов в системах разделения времени

1) Кольцевой режим. Созд кольцо процессов, подлеж выполнению. Вып они по-порядку. Выдел всем одинак колич времени.

2) Алгоритм с приоритетом: процесс имеет приоритет. Тот, у которого приоритет больше – выполняется первее.

3) C динамически меняющимся приоритетом: приоритет рассчит из 2х составляющих – статич и динамич составляющих. Статич приор присваив процессу при запуске. Динамич составл раасчит исходя из того, как процесс использ процессорное время.. Если процесс отраб своё процессорн время полностью – дин приоритет пониж, если завершился досрочно – дин приор повыш.
21. Создание процессов

Новый процесс создается в UNIX только путем системного вызова fork. Процесс, сделавший вызов fork, называется родительским, а вновь созданный процесс - порожденным. Новый процесс является точной копией родительского. При порождении (разветвлении) процесса проверяется, достаточно ли памяти и места в таблице процессов для данного процесса. Новому процессу присваивается новый уникальный идентификатор (PID) от 0 до 65535. Когда изменение таблицы процессов ядра завершается, процесс добавляется к списку процессов, доступных для выполнения и ожидающих в очереди планировщика подобно другим процессам.

Порожденный процесс наследует от родительского процесса следующие основные характеристики:

1. Способы обработки сигналов (адреса функций обработки сигналов).

2. Реальные и эффективные идентификаторы пользователя UID и группы GID.

3. Значение поправки приоритета.

4. Все присоединенные разделяемые сегменты памяти.

5. Идентификатор группы процессов.

6. Терминальную линию.

7. Текущий каталог.

8. Корневой каталог.

9. Маска создания файлов (umask).

10. Ограничения ресурсов (ulimit).

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

1. Порожденный процесс имеет свой уникальный идентификатор.

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

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

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

  1   2   3   4


написать администратору сайта