Почему при инсталляции ос необходима ее генерация для конкретного компьютера
Как вы знаете, жесткие диски представляют собой несколько пластин с магнитным покрытием, расположенных на одной оси и вращающихся с большой скоростью. Считывание/запись информации осуществляется с помощью головок диска, расположенных одна под другой между пластинами и перемещающихся от центра к краям пластин. Окружность на магнитной пластине, которую описывает головка при вращении пластин, называется дорожкой, а совокупность таких дорожек, расположенных одна под другой (определяемая каждым фиксированным положением головок), называется цилиндром. Каждая дорожка разбита на сектора, и в сектор можно записать 512 байт полезной информации. Поэтому диски часто характеризуются совокупностью трех цифр: числом цилиндров/числом дорожек в цилиндре/числом секторов на дорожке или C/H/S (от первых букв соответствующих английских терминов: Cylinder/Head/Sector, т. е. цилиндр/головка/сектор). Эти три цифры называют "геометрией диска". Диск с геометрией C/H/S имеет объем C*H*S*512 байт.
Диски являются блочными устройствами, т. е. считывание и запись информации производится блоками, и минимальный размер блока равен одному сектору (512 байт). Для того чтобы записать информацию на диск, надо "позиционировать головку", т. е. указать контроллеру, в какой сектор эту информацию записать. Сектора как раз адресуются путем указания номера цилиндра, номера считывающей головки (или дорожки) и порядкового номера сектора на дорожке.
2.3.2. Разделы диска и таблица разбиения диска.
Физические диски в Intel-системах принято разбивать на разделы. Повелось это, кажется, из-за того, что первые версии MS-DOS не могли обеспечить доступ к большим дискам (а объемы дисков росли быстрее, чем возможности DOS). Тогда придумали разбиение дисков на разделы. Для этого в нулевой сектор диска (нулевой сектор первой дорожки на нулевом цилиндре) стали записывать так называемую таблицу разбиения диска на разделы (partition table). Каждый раздел может трактоваться как отдельный физический диск. В частности, в разные разделы могут быть установлены разные операционные системы.
Таблица разделов содержит 4 записи по 16 байт для 4 разделов, которые называют первичными. Каждая запись имеет следующую структуру:
Таблица разделов диска создается обычно с помощью программы fdisk . В ОС Linux имеется как стандартная программа fdisk (которая, впрочем, существенно отличается от программы fdisk в MS-DOS и Windows), так и еще две программы для работы с разделами диска: cfdisk и sfdisk . Программа cfdisk , как и fdisk , предназначена для работы с таблицей разделов диска: она не обращает никакого внимания на информацию, которая уже имеется на диске. Отличается она только несколько более удобным интерфейсом, предоставляющим пользователю не просто подсказку по командам, а систему меню. Программа sfdisk обладает несколько более широкими возможностями, в частности, она позволяет произвести некоторые операции над существующими разделами диска.
DOS использует поля begin и end таблицы разбиения диска и функции прерывания 13 BIOS (Int 13h) для доступа к диску, и поэтому не может использовать диски объемом более 8,4 Гбайт, даже с новым BIOS (об этом будет рассказано ниже), а разделы не могут быть более 2,1 Гбайт (но это уже из-за ограничений файловой системы FAT16).
Linux использует только поля start и length таблицы разбиения диска и поддерживает разделы, содержащие до 2 32 секторов, т. е. размер раздела может достигать 2 Тбайт.
Поскольку в таблице разбиения отведено только 4 строки для задания разделов, число первичных разделов на диске с самого начала ограничено: их может быть не более 4. Когда стало ясно, что и 4-х разделов мало, были изобретены логические разделы. Для этого один из первичных разделов объявляется "расширенным" (тип раздела — 5, или F, или 85 в шестнадцатеричной системе), и в нем создаются "логические разделы". Расширенные разделы сами по себе не используются, они могут лишь хранить логические разделы. Первый сектор расширенного раздела хранит таблицу разделов с четырьмя входами: один используется для логического раздела, другой для еще одного расширенного раздела, а два не используются. Каждый расширенный раздел имеет свою таблицу разбиения, в которой, как и в первичном расширенном разделе, используются только две строки, задающие один логический и один расширенный раздел. Таким образом, получается цепочка из таблиц разделов, где первая описывает три основных раздела, а каждая следующая — один логический раздел и положение следующей таблицы.
Программа sfdisk в Linux показывает всю цепочку:
Число логических разделов в принципе не ограничено, потому что каждый логический раздел может содержать таблицу разделов и вложенные логические разделы. Однако реально ограничения все же существуют, например, Linux может работать не более чем с 15 разделами на SCSI-дисках и не более чем с 63-мя разделами на IDE-дисках.
Расширенный раздел как на физическом диске, так и в расширенном разделе вложенного расширенного раздела (предыдущего уровня) может быть только один: ни одна из существующих программ разбиения дисков ( fdisk и ее усовершенствованные аналоги) не умеет создавать более одного расширенного раздела.
В Linux диск в целом (т. е. физический диск) доступен по имени устройства /dev/hda, /dev/hdb, /dev/sda, и т.п. Первичные разделы обозначаются дополнительной цифрой в имени устройства: /dev/hda1, /dev/hda2, /dev/hda3, /dev/hda4, а логические разделы в Linux доступны по именам /dev/hda5, /dev/hda6 . (начиная с номера 5). Из сказанного выше должно быть ясно, почему могут быть пропущены имена /dev/hda3 и /dev/hda4 (третий и четвертый первичные разделы просто не были созданы) и сразу после /dev/hda2 вы увидите /dev/hda5 (логический раздел в расширенном разделе /dev/hda2), а далее нумерация идет последовательно.
В Windows логические разделы получают однобуквенные имена, начиная с последнего задействованного имени первичного раздела. Если, например, имеется один жесткий диск с двумя простыми первичными разделами (C: и D:) и одним расширенным разделом, в котором созданы два логических раздела, то эти логические разделы именуются E: и F:. Впрочем, в Windows NT и 2000 с помощью администратора дисков разделам могут быть присвоены другие буквенные имена.
2.3.3. Процесс загрузки ОС фирмы Microsoft
Какую бы операционную систему мы ни рассматривали, для того, чтобы ОС могла начать управлять компьютером, ее необходимо загрузить в оперативную память. Поэтому давайте кратко рассмотрим, как происходит процесс загрузки разных ОС. Поскольку нас интересует только загрузка с жестких дисков, то мы не будем рассматривать особенности загрузки с дискеты, CD-ROM и по сети. Начнем с доброй старой MS-DOS и MS Windows (не забывайте, что разработка и совершенствование персональных компьютеров шло параллельно с развитием ОС от Microsoft и решения, использованные в этих ОС, оказывали сильное влияние на те решения, которые принимались разработчиками аппаратуры).
После завершения тестирования POST вызывает Int 19h, которое пытается найти загрузочное устройство. Поиск производится в том порядке, который определен в Setup BIOS, и осуществляется путем опроса нулевых секторов соответствующих устройств. Если диск является загрузочным, то в его нулевом секторе находится главная загрузочная запись — Master Boot Record (MBR). Последние два байта MBR — это "магическое число", которое является признаком того, что данный сектор есть MBR, а, следовательно, диск является загрузочным. Кроме "магического числа" MBR содержит таблицу разделов диска, о которой уже было сказано выше, и маленькую программу — первичный загрузчик, объемом всего 446 (0x1BE) байт.
В табл. 2.1 представлена структура главного загрузочного сектора, создаваемого при инсталляции Windows.
MS-DOS, Windows95 и NT записывают DOS MBR при инсталляции. Стандартное для MS содержимое MBR можно также записать командой fdisk /mbr .
Но вернемся к описанию процесса загрузки. Прерывание 19h BIOS загружает первичный загрузчик в память компьютера и передает управление этой программе. Но такой маленькой программе не под силу загрузить ОС; все, что она может сделать — это загрузить в память более мощную программу — вторичный загрузчик.
Для этого она ищет в таблице разделов активный раздел и считывает в память вторичный загрузчик, который располагается начиная с первого логического сектора активного раздела. Обратите внимание на слово "начиная". Дело в том, что вторичный загрузчик в разных системах имеет разную длину.
В разделе, отформатированном под файловую систему FAT, вторичный загрузчик занимает один сектор (512 байт). В разделе, отформатированном под файловую систему NTFS, вторичный загрузчик занимает уже несколько секторов.
Вторичный загрузчик загружает первый слой программ, необходимых для запуска операционной системы. В случае MS DOS программа-загрузчик загружает IO.SYS по адресу 700h, затем MSDOS.SYS и передает управление разделу SYSINIT модуля IO.SYS.
Если по каким-либо причинам на диске не найден активный раздел, процесс загрузки продолжается обработкой прерывания 18h. Эта ветвь реально используется очень редко, но такая возможность может быть очень полезна в некоторых ситуациях. При удаленной загрузке, когда операционная система загружается с сервера, это прерывание перенаправляется программой POST на ROM сетевой карты.
Windows95 загружается так же, как и DOS, но заменяет IO.SYS и MSDOS.SYS своими файлами. Файлы DOS сохраняются под именами IO.DOS и MSDOS.DOS соответственно. Когда вы выбираете загрузку сохраненного DOS, Windows95 переименовывает свои файлы в файлы с расширением w40 и восстанавливает первоначальные имена системных файлов DOS. Процесс продолжается с загрузки DOS-овского IO.SYS. Таким образом, загрузочные сектора DOS и Windows95 одинаковые.
Каждая строка секции [operating systems] файла boot.ini определяет один из вариантов загрузки и строится по следующему шаблону
Адресом вторичного загрузчика может являться указание на конкретный раздел диска или на файл загрузчика. Вот пример файла boot.ini:
multi(0)disk(0)rdisk(0)partition(3)\WINNT="Windows NT Workstation 4.00 RUS"
multi(0)disk(0)rdisk(0)partition(3)\WINNT="Windows NT Workstation 4.00 RUS [VGA mode]" /basevideo /sos
Если пользователь выбирает NT, то выполняется загрузка по адресу раздела, указанному в первой строке раздела. В строке, соответствующей Microsoft Windows, указан просто диск "C:\", так как имя загрузочного файла берется по умолчанию: bootsect.dos. Файл грузится в память и загрузка продолжается так, как если бы загрузочная запись раздела была загружена программным кодом из MBR.
Для загрузки других систем можно воспользоваться таким же приемом. Для этого в boot.ini нужно добавить строки, содержащие ссылки на другие загрузочные файлы. При выборе такой строки будет загружаться соответствующая ОС. В приведенном выше примере этим способом обеспечивается загрузка Linux. Для этого в файле C:\BOOTSECT.LNX должно быть предварительно записано содержимое загрузочной записи, создаваемой Linux (точнее — LILO, стандартным загрузчиком Linux).
2.3.4. Проблемы с большими дисками
CH — младшие 8 бит номера цилиндра;
CL — 7-6 биты соответствуют старшим битам номера цилиндра, 5-0 биты соответствуют номеру сектора;
DH — номер считывающей головки;
(Заметим в скобках, что нумерацию физических цилиндров и дорожек принято начинать с 0, а сектора на дорожке нумеруют, начиная с 1). Однако практически головок было не более 16-ти, а число секторов на дорожке — не более 63, и хотя для указания цилиндра использовалось 10 бит, все равно BIOS не мог работать с дисками объемом более 1024*63*16*512 = 528 Мбайт.
Для преодоления этого ограничения стали применять разные хитрые приемы (подробнее об этом вы можете узнать из [П4.2]). Например, Extended CHS (ECHS) или "Large disk support" (иногда обозначается просто как "Large") использует еще три незанятых бита номера головки для увеличения числа адресуемых цилиндров. Это позволило использовать "фальшивую геометрию диска" в 1024 цилиндра, 128 считывающих головок и 63 сектора/дорожку. Трансляцию Extended CHS в реальный CHS-адрес (который может иметь до 8192 цилиндров) осуществляет BIOS. Это позволяет работать с дисками, объемом до 8192*16*63*512 = 4 227 858 432 байт или 4,2 Гбайт.
Но разработчики все увеличивали плотность записи на диск, число пластин и дорожек, изобретали другие способы увеличения объема дисков. В частности, число секторов на дорожках стало разным (на более длинных дорожках, расположенных ближе к краю пластин, число секторов стали увеличивать). В результате три числа C/H/S уже перестали правильно отражать "геометрию диска", а старые версии BIOS перестали обеспечивать доступ ко всему дисковому пространству.
Тогда придумали другой прием для работы с большими дисками через Int 13h — линейную адресацию блоков ("Linear Block Addressing" или LBA). Если не вдаваться в подробности, то можно сказать, что все сектора на диске нумеруются последовательно, начиная с первого сектора на нулевой дорожке нулевого цилиндра. Вместо CHS-адреса каждый сектор получает логический адрес — просто его порядковый номер в общем массиве секторов. Нумерация логических секторов начинается с нуля, причем нулевой сектор содержит главную загрузочную запись (MBR). В Setup BIOS поддержка преобразования линейного номера в CHS-адрес обозначается как "поддержка LBA". Таким образом, в новых версиях BIOS обычно имеется выбор из трех вариантов: "Large", "LBA" и "Normal" (последнее означает, что трансляция адресов не производится).
Но и в режиме LBA обращение к физическому диску все равно осуществляется через функции Int 13h, которые используют 3D нотацию (C,H,S). В силу этого возникает ограничение на возможный объем диска: BIOS, и, следовательно, MS-DOS и ранние версии Windows, не могли адресовать диски объемом более 8,4 Гбайт.
Надо заметить, что указанное ограничение относится только к дискам с интерфейсом IDE. В контроллерах SCSI-дисков номер сектора переводится в команды SCSI, а далее сам диск находит нужную позицию, поэтому такого ограничения на объем диска не возникает.
При разработке ОС, как и любой другой сложной программной системы, различают концепции механизма и политики. Механизм определяет, каким образом реализовать некоторую функциональность (например, виртуальную память ). Политика определяет, что именно требуется реализовать, т.е. набор требований, целей, условий для реализации функциональности. Например, политика безопасности в ОС определяет правила, по которым программе или пользователю предоставляются некоторые полномочия (например, возможность открытия некоторого файла). Эта политика может быть реализована многими способами, например, с помощью списков управления доступом (access control lists ); это понятие будет рассмотрено немного позже. Отделение механизма от политики – очень важный принцип для разработки ОС. Он допускает максимум гибкости, если "политические" решения могут быть изменены впоследствии.
Реализация операционных систем
Традиционно, начиная с 1950-х гг., ОС разрабатывались на низкоуровневых языках – ассемблерах. Система UNIX была первой ОС, разработанной почти полностью на языке высокого уровня – Си . Впоследствии язык Си стал одним из наиболее популярных языков системного программирования . Благодаря новаторскому подходу авторов UNIX , сложилась тенденция разработки ОС на языках высокого уровня .
Преимущества использования языков высокого уровня очевидны: код на языке высокого уровня
- может быть разработан быстрее
- более компактен
- легче для понимания и отладки.
Кроме того, операционная система гораздо легче переносима на другие аппаратные платформы, если она разработана на языке высокого уровня .
Гипотетический недостаток у языков высокого уровня , по сравнению с ассемблерами , только один – возможная неэффективность реализации высокоуровневых конструкций языка, по сравнению с "ручным" программированием на ассемблере. Однако данная проблема может быть решена путем разработки эффективного оптимизирующего компилятора с языка высокого уровня и не должна препятствовать его использованию.
Близкими автору примерами разработки ОС на языках высокого уровня , помимо UNIX , является разработка на Си ОС Solaris фирмой Sun , а также разработка ОС "Эльбрус" на языке высокого уровня Эль-76 [ 21 ] . Поставка ОС "Эльбрус" вместе с ее исходными кодами была весьма полезна для программистов и стимулировала целый ряд работ отраслевых организаций по разработке ОС реального времени на базе ОС "Эльбрус".
Генерация операционной системы
ОС проектируются с целью использования на любом компьютере из некоторого класса. В поставку ОС входит очень большой набор типовых модулей для различных классов компьютеров (например, настольных и портативных). Поэтому для каждого компьютера система должна быть сконфигурирована при ее инсталляции – установке ОС на конкретный компьютер .
Программа генерации ОС получает информацию о специфической конфигурации компьютерной системы.
После генерации и инсталляции ОС система готова к работе.
Следующий этап - загрузка (booting) – запуск компьютера посредством загрузки ядра ОС. При запуске компьютера первой запускается программа раскрутки (bootstrap program) – код, хранящийся в постоянной памяти ( ROM ) базовой системы ввода-вывода ( BIOS ) компьютера. Код программы раскрутки находит ядро ОС, загружает его в память и запускает.
Ключевые термины
Just-In-Time (JIT) – компилятор – компонента JVM,выполняющая при первом вызове каждого метода его компиляцию в объектный код целевой платформы ( native – код), что позволяет повысить суммарную производительность выполнения программ на Java .
OS/2 – ОС, разработанная фирмой IBM для персональных компьютеров PS /2.
POSIX (Portable Operating Systems of unIX type) – стандарт для библиотек, системных вызовов и системных программ для операционных систем типа UNIX .
Win32 - Библиотеки ( API ) ОС Windows для 32-разрядных процессоров.
Байт-код (bytecode) – команды виртуальной Java -машины, построенные на основе постфиксной записи операндов.
Верификатор классов ( class verifier ) – компонента JVM, выполняющая при загрузке класса проверку корректности его байт-кода, контроль типов и другие необходимые проверки.
Виртуальная машина – программный интерфейс , полностью аналогичный интерфейсу обычного компьютера без базового программного обеспечения.
Виртуальная машина Java (JVM) – виртуальная машина , исполняющая Java байт-код .
Загрузка (booting) – запуск компьютера посредством загрузки ядра ОС.
Загрузчик классов ( class loader ) – компонента JVM,выполняющая загрузку классов в виртуальную машину во время выполнения программы.
Инсталляция – установка ОС на конкретный компьютер .
Интерфейс прикладного программирования (application programming interface – API) - набор библиотечных функций, реализующий некоторую функциональность, используемую программой.
Механизм - метод реализации некоторой функциональности в ОС.
Микроядро (micro-kernel) – принцип разработки ОС, который заключается в переносе максимально возможного числа модулей из системного в пользовательское " пространство ", т.е. ОС разрабатывается таким образом, что большинство ее модулей выполняются в пользовательском режиме, а размер ядра минимизируется.
Политика - набор требований, целей, условий для реализации некоторой функциональности в ОС.
Политика безопасности в ОС – совокупность правил, по которым программе или пользователю предоставляются некоторые полномочия для выполнения действий.
Программа раскрутки (bootstrap program) – код, запускаемый первым при включении компьютера, хранящийся в постоянной памяти ( ROM ) базовой системы ввода-вывода ( BIOS ) компьютера, который находит ядро ОС, загружает его в память и запускает.
Краткие итоги
При разработке ОС широко применяется принцип уровней абстракции. Он применен при разработке OS/2 – второй ОС фирмы Microsoft (после MS DOS ), разработанной для персональных компьютеров PS /2. OS/2 имела четыре уровня абстракции.
ОС с микроядром – принцип разработки ОС, при котором минимизируется число модулей, выполнение которых необходимо в привилегированном режиме, что более безопасно, надежно и позволяет легче переносить ОС на другие платформы.
По принципу микроядра разработана ОС Windows NT, в которой имеются серверы для поддержки исполнения Win32 - , OS/2 и POSIX -приложений.
Концепция виртуальной машины позволяет предоставить пользователю ОС воображаемую персональную машину со своим набором ресурсов. Таким образом, обеспечивается изоляция и защита системных ресурсов , однако подобная ОС сложнее для разработки. ОС на базе концепции виртуальных машин – хорошая основа для исследований.
В настоящее время широко используется виртуальная машина Java ( JVM ), выполняющая программу на Java байт-коде на реальной аппаратуре. JVM состоит из загрузчика классов, верификатора классов, интерпретатора байт-кода и just-in-time – компилятора.
Цели проектирования и разработки ОС: с точки зрения пользователя – удобство, простота, надежность , безопасность , эффективность; с точки зрения разработчика ОС – простота проектирования, реализации и сопровождения, гибкость надежность , свобода от ошибок, эффективность.
При разработке ОС различают механизмы – методы реализации функциональностей – и политики – правила и требования к реализации функциональностей. Механизмы отделены от политик.
Реализация ОС долгое время выполнялась на ассемблерах. Начиная с UNIX , разработка ОС ведется на языках высокого уровня , чаще всего – на языке Си .
При установке ОС на конкретный компьютер происходит фактически генерация ОС, так как ОС предназначена для широкого класса машин, и в ее поставку входит широкий набор типовых модулей, из которых инсталлятор генерирует конкретную ОС для конкретной машины.
Загрузка ОС – это ее запуск при включении компьютера. Она реализуется с помощью программы раскрутки, которая хранится в ROM BIOS , запускается самой первой, находит ядро ОС, загружает его в память и запускает.
Правильные ответы выделены зелёным цветом.
Все ответы: Курс предназначен для студентов младших курсов в области ИТ. Он знакомит с принципами архитектуры и функционирования современных операционных систем (ОС) и сетей, дает теоретические знания и практические навыки для работы в распространенных ОС – Windows, Linux, Solaris, а также в ОС для мобильных устройств и облачных вычислений. Особое внимание уделяется алгоритмам и структурам данных, используемым в ОС, их надежности и безопасности.
(1) Интерфейс между несколькими программными модулями
(2) Интерфейс между аппаратурой компьютера, его внешними устройствами, прикладными программами и пользователем
(3) система, обеспечивающая выполнение банковских операций
(4) система, обеспечивающая вывод результатов работы компьютера на печать
(1) процесс, исполняемый в том же адресном пространстве, что и процесс-родитель
(4) процесс, выполняемый в собственном адресном пространстве
(1) распределение времени процессора между процессами
(3) сдача процессорного времени в аренду пользователям
Почему необходима синхронизация параллельных процессов?
(1) во избежание нарушения целостности общих данных при одновременном обращении к ним
(1) ситуация взаимной блокировки циклической последовательности процессов, каждый из которых ожидает ресурса, занятого следующим процессом
(2) одновременное обращение процессов к общим данным
В чем заключается задача управления памятью операционной системой?
(1) размещение пользовательских программ и их данных в памяти для их исполнения
(2) постоянное напоминание пользователю о его рабочих планах
(3) контроль работоспособности аппаратных модулей памяти
(1) сброс образов неактивных процессов на диск и считывание образов активных процессов в основную память
(2) запись в файл открытых блоков при закрытии файла
(1) распределение памяти сегментами переменной длины, соответствующими модулям программы
Различают три типа ОС общего назначения: поддерживающие однопрограммный режим работы и диалоговый способ общения, обеспечивающие пакетную обработку задач в режиме мультипрограммирования и ОС разделения времени. 1. ОС общего назначения, поддерживающие однопрограммный режим работы и диалоговый способ общения включают в себя средства, обеспечивающие ввод и вывод инфы, управляют работой системных обрабатывающих программ - трансляторов, редакторов, предоставляют пользователю сведения о ходе выполнения задач, обеспечивают работу с библиотеками. Обычно такие ОС называют мониторными. Они не повышают производительности ЭВМ, но позволяют программисту вмешиваться в ход выполнения задания, что резко повышает производительность его работы, особенно на этапе отладки программ.
2.ОС общего назначения, обеспечивающие пакетную обработку задач в режиме мультипрограммирования применяются в ВС средней и большой производительности. В RAM ЭВМ одновременно находится несколько системных и пользовательских задач, и когда одна из них обрабатывается процессором, то для остальных осуществляются необходимые обмены с внешним устройством (ВУ).
Эффективность использования ВС при этом во многом зависит от состава пакета задач, подлежащих выполнению, так как могут возникать ситуации, когда все задачи находятся в состоянии ожидания и процессор. Эффективность работы пользователя при этом невысокая, так как в условиях пакетной обработки задач он не имеет возможности вмешиваться в процесс выполнения своей прои. Если для решения очередной задачи не хватает ресурсов, ОС должна принять одно из следующих решений:
—отобрать часть ресурсов у какой - либо другой задачи, выполнявшейся в данный момент и менее приоритетной;
—подождать, пока какая-нибудь из решаемых задач завершится и освободит требуемый ресурс;
—пропустить вне очереди ту задачу, чья очередь еще не подошла, но для выполнения которой ресурсов достаточно.
3. ОС разделения времени позволяют реализовать возможность повышения производительности труда пользователя за счет его доступа к своей задаче в процессе ее выполнения и повышения производительности ВС за счет мультипрограммирования. Режим разделения времени создает иллюзию одновременного доступа нескольких пользователей ко всем вычислительным ресурсам ВС. Каждый пользователь общается с системой так, как если бы ему одному принадлежали все вычислительные ресурсы: он может остановить выполнение своей задачи в нужном месте, просмотреть требуемые области RAM, с заданного места выполнить свою программу по командам и т.д. На самом же деле каждый пользователь получает для своей задачи достаточную зону RAM, процессор и прочие вычислительные ресурсы только в течение определенного и достаточно малого интервала времени, как уже говорилось выше - кванта.
Генерация ОС - процесс создания конкретного варианта ОС, наиболее полно учитывающего запросы возможных пользователей и конфигурацию ЭВМ в конкретной ситуации. ОС поставляются в виде дистрибутивных носителей, содержащих модули всех управляющих и обрабатывающих программ. В процессе генерации формируются ядро ОС - часть наиболее часто используемых управляющих модулей, постоянно присутствующих в оперативной памяти, и системные наборы данных. Процесс генерации ОС осуществляется с помощью специальной прои - генератора ОС. Затем решается вопрос о том, какие из всех возможных средств и составных частей следует включить в состав сгенерированной ОС. При этом уточняется, какие из модулей ОС будут резидентными, то есть будут постоянно присутствовать в RAM в составе ядра, а какие модули - транзитными, то есть постоянно будут находиться на жестком диске, а в RAM будут попадать по мере надобности. Следует помнить, что всякое перемещение модулей ОС между жестким диском и RAM, как и всякий обмен, осуществляется относительно медленно. Решение этого вопроса основывается на поиске наилучшего компромисса между быстродействием и размером ядра ОС, так как если все модули сделать резидентными, то быстродействие ОС окажется максимальным, но максимальным будет и размер RAM, занимаемой под ядро ОС. В противном случае мы проиграем в быстродействии, но сэкономим память. Поскольку ЭВМ используются в различной конфигурации (отличаются емкость RAM, количество внешних устройств и т.п.), необходимо при генерации перечислить весь состав технических средств вычислительного комплекса, внешних устройств. В результате можно сгенерировать вариант ОС, максимально учитывающий функциональное назначение и конфигурацию конкретной вычислительной системы.
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰).
Читайте также: