Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Ответы на вопросы к экзамену / 4.темы для самостоятельного изучения

.doc
Скачиваний:
6
Добавлен:
25.05.2014
Размер:
69.63 Кб
Скачать

История разработки UNIX

История ОС UNIX началась в недрах Bell Telephone Laboratories (теперь AT&T Bell Laboratories) и связана с известными теперь всем именами Кена Томпсона, Денниса Ритчи и Брайана Кернигана (два последних имени знакомы читателям и как имена авторов популярнейшей книги по языку программирования Си, издававшейся в нашей стране на русском языке). Принято считать, что исходным толчком к появлению ОС UNIX явилась работа Кена Томпсона по созданию компьютерной игры "Space Travel". Он делал это в 1969 году на компьютере Honeywell 635, который до этого использовался для разработки проекта MAC. В это же время Кен Томпсон, Деннис Ритчи и другие сотрудники Bell Labs предложили идею усовершенствованной файловой системы, прототип которой был реализован на компьютере General Electric 645. Однако компьютер GE-645, который был рассчитан на работу в режиме разделения времени и не обладал достаточной эффективностью, не годился для переноса Space Travel. Томпсон стал искать замену и обнаружил, что появившийся к этому времени 18-разрядный компьютер PDP-7 с 4 килословами оперативной памяти и качественным графическим дисплеем вполне для этого подходит. После того, как игра была успешно перенесена на PDP-7, Томпсон решил реализовать на PDP-7 разработанную ранее файловую систему. Дополнительным основанием для этого решения было то, что компания Bell Labs испытывала потребность в удобных и дешевых средствах подготовки и ведения документации. В скором времени на PDP-7 работала файловая система, в которой поддерживались: понятие inodes, подсистема управления процессами и памятью, обеспечивающая использование системы двумя пользователями в режиме разделения времени, простой командный интерпретатор и несколько утилит. Все это еще не называлось операционной системой UNIX, но уже содержало родовые черты этой ОС. Название придумал Брайан Керниган. Он предложил назвать эту двухпользовательскую систему UNICS (Uniplexed Information and Computing System). Название понравилось, поскольку, помимо прочего, оно напоминало об участии сотрудников Bell Labs в проекте Multics. В скором времени UNICS превратилось в UNIX (произносится так же, но на одну букву короче). Первыми реальными пользователями UNIX стали сотрудники патентного отдела Bell Labs. Однако существовали некоторые проблемы, связанные с PDP-7. Во-первых, эта машина не принадлежала компьютерной группе (была только во временном пользовании). Во-вторых, возможности этого компьютера не удовлетворяли потребности исследователей. Поэтому в 1971 году был приобретен новый 16-разрядный компьютер фирмы Digital Equipment PDP-11/20, и на него была перенесена UNIX. Существовавший к этому времени вариант системы был написан на языке ассемблера, так что можно представить, что перенос был совсем не простым делом. На PDP-11 система поддерживала большее число пользователей. Кроме того, была реализована утилита форматирования текстовых документов roff (тоже на языке ассемблера). В ноябре 1971 года был опубликован первый выпуск документации по ОС UNIX ("Первая редакция"). В соответствии с этой "Первой редакцией" назвали и соответствующий документации вариант системы. Впоследствии это стало традицией: новая редакция ОС UNIX объявлялась при выходе в свет новой редакции документации. Вторая редакция появилась в 1972 году. Наиболее существенным качеством "Второй редакции" было то, что система была переписана на языке Би ("B"). Язык и интерпретирующая система программирования были разработаны Кеном Томпсоном под влиянием существовавшего языка BCPL. Во второй редакции появились программные каналы ("pipes"). Появление варианта системы, написанного не на языке ассемблера, было заметным продвижением. Однако сам язык Би во многом не удовлетворял разработчиков. Подобно языку BCPL язык Би был бестиповым, в нем поддерживался только один тип данных, соответствующий машинному слову. Другие типы данных эмулировались библиотекой функций. Деннис Ритчи, который всегда увлекался языками программирования, решил устранить ограничения языка Би, добавив в язык систему типов. Так возник язык Си ("C"). В 1973 году Томпсон и Ритчи переписали систему на языке Си. К этому времени существовало около 25 установок ОС UNIX, и это была "Четвертая редакция". В июле 1974 года Томпсон и Ритчи опубликовали в журнале Communications of the ACM историческую статью "UNIX Timesharing Operating System", которая положила начало новому этапу в истории системы. ОС UNIX заинтересовались в университетах. Этому способствовала политика компании Bell Labs, которая объявила о возможности бесплатного получения исходных текстов UNIX для использования в целях образования (нужно было платить только за носитель и документацию). Появившуюся к этому времени "Пятую редакцию" ОС UNIX одними из первых получили Калифорнийский университет г. Беркли и университет Нового Южного Уэльса г. Сидней (Австралия). В 1975 году компания Bell Labs выпустила "Шестую редакцию" ОС UNIX, известную как V6 или Исследовательский UNIX. Эта версия системы была первой коммерчески доступной вне Bell Labs. К этому времени большая часть системы была написана на языке Си. Небольшие размеры языка и наличие сравнительно легко переносимого компилятора придавали ОС UNIX V6 новое качество реально переносимой операционной системы. Кроме того, потенциальное наличие на разных аппаратных платформах компилятора языка Си делало возможным разработку мобильного прикладного программного обеспечения. Важный шаг в этом направлении был предпринят Деннисом Ритчи, который в 1976 году создал библиотеку ввода/вывода (stdio), ставшую фактическим стандартом различных систем программирования на языке Си. С использованием stdio стало возможно создавать мобильные прикладные программы, действительно независящие от особенностей аппаратуры процессора и внешних устройств. Примерно в это же время Кен Томпсон во время своего академического отпуска посетил университет г. Беркли и установил там UNIX V6 на компьютере PDP-11/70. Билл Джой (основатель BSD - Berkeley Software Distribution, а впоследствии основатель и вице-президент компании Sun Microsystems) был тогда дипломником этого университета.

Сетевые ОС

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

Т возможность работы с печатающимися устройствами, файлами или Интернетом. Интернет-провайдеры обычно запускают в работу несколько серверов для того, чтобы поддерживать одновременный доступ к сети множества клиентов. На серверах хранятся страницы web-сайтов и обрабатываются входящие запросы. UNIX и Windows 2000 являются типичными серверными операционными системами. Теперь в этих целях стала использоваться и операционная система LINUX.

ОС реального времени

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

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

ОС для карманных компьютеров

Карманный компьютер или PDA (Personal Digital Assistant –персональный цифровой помощник) – это маленький компьютер, помещающийся в кармане брюк, выполняющий небольшой набор функций (телефонной записной книжки и блокнота). Встроенные системы, управляющие действиями устройств, работают на машинах, обычно не считающихся компьютерами, например в телевизорах, микроволновых печах и мобильных телефонах. Они часто обладают теми же характеристиками, что и системы реального времени, но при этом имеют особый размер, память и ограничения мощности, что выделяет их в отдельный класс. Примерами таких операционных систем являются PalmOS и Windows CE (Consumer Electronics – бытовая техника).

ОС для организации вычислительных кластеров

Системная интеграция

Дескриптор прерываний

Средства ОС для поддержки Win API

WIN32 API (Application Program Interface – интерфейс прикладных программ). Предполагается, что программисты должны использовать ее для вызова служб ОС. Этот интерфейс частично поддерживается всеми версиями Windows, начиная с Windows 95. Отделяя интерфейс от фактический системных вызовов, Microsoft поддерживает возможность изменения со временем действительных системных вызовов (даже от одной версии к другой), не делая при этом недействительными существующие программы. Ситуация на самом деле складывается неоднозначная, так как в Windows 2000 появилось много новых вызовов, ранее недоступных. Win32 API имеет огромное количество вызовов для управления окнами, геометрическими фигурами, текстом, шрифтами, полосами прокрутки, диалоговыми окнами, пунктами меню и другими элементами графического интерфейса. В том случае, когда графическая подсистема запускается в режиме ядра (это верно для большинства версий Windows, но не для всех), вызовы являются системными, в противном случае вызовы являются только библиотечными.

Прямой доступ к памяти

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

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

Архитектура компьютера PC AT включает в себя подсистему DMA, состоящую из двух контроллеров DMA Intel 8237, регистра старшего адреса DMA и регистров страниц DMA. Эти контроллеры обеспечивают 7 каналов DMA.

Система обеспечивает передачу данных по каналам DMA как по одному байту за цикл DMA, так и по два байта за цикл, исходя из возможностей архитектуры процессора (двухбайтной шины данных). Чтобы сохранить преемственность подсистемы DMA в PC AT с аналогичной подсистемой в PC XT каскадирование "байтного" контроллера DMA с распределением каналов XT осуществляется через "словный" контроллер DMA.

ОС как среда выполнения программ. Параметры окружения.

Поддержка Java в современных ОС.

Организация свопинга в Win 98/ME, Win 2000, UNIX.

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

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

Но если возникает требование страницы в условиях, когда список описателей свободных страниц пуст, то начинает работать механизм своппинга. Основной повод для применения другого механизма состоит в том, что простое отнятие страницы у любого процесса (включая тот, который затребовал бы страницу) потенциально вело бы к ситуации thrashing, поскольку разрушало бы рабочий набор некоторого процесса). Любой процесс, затребовавший страницу не из своего текущего рабочего набора, становится кандидатом на своппинг. Ему больше не предоставляются ресурсы процессора, и описатель процесса ставится в очередь к системному процессу-swapper. Конечно, в этой очереди может находиться несколько процессов. Процесс-swapper по очереди осуществляет полный своппинг этих процессов (т.е. откачку всех страниц их виртуальной памяти, которые присутствуют в основной памяти), помещая соответствующие описатели физических страниц в список свободных страниц, до тех пор, пока количество страниц в этом списке не достигнет установленного в системе верхнего предела. После завершения полного своппинга каждого процесса одному из процессов из очереди к процессу-swapper дается возможность попытаться продолжить свое выполнение (в расчете на то, что свободной памяти уже может быть достаточно).

Организация разделов диска. Partition Magic.

Разбиение накопителя - это определение областей диска, которые операционная система будет использовать в качестве отдельных разделов, или томов. При организации разделов диска в его первый сектор (цилиндр 0, головка 0, сектор 1) заносится главная загрузочная запись (Master Boot Record- MBR). В ней содержатся сведения о том, с каких цилиндров, головок и секторов начинаются и какими заканчиваются имеющиеся на диске разделы.      В этой таблице также содержатся указания для системной BIOS, какой из разделов является загрузочным, т.е. где следует искать основные файлы операционной системы. Для разбиения накопителей на жестких дисках необходимо использовать программу Fdisk из поставок операционных систем Windows 9х или DOS. При ее выполнении в загрузочный сектор (первый сектор на диске, в который заносится главная загрузочная запись) записывается таблица разбиения, что необходимо для нормальной работы программы Format. Перед установкой любой операционной системы необходимо разбить диск на разделы.      Все версии программы Fdisk (Windows и DOS) позволяют создавать два различных типа разделов диска: основной и дополнительный. Основной раздел может быть загрузочным, а дополнительный нет. Если в компьютере установлен один жесткий диск, то, как минимум, часть этого диска должна быть основным разделом при условии, что компьютер будет загружаться с этого жесткого диска. Основному разделу назначается буква C: диска, а дополнительным - остальные буквы: D:, Е: и т.д. Один дополнительный раздел может содержать одну букву диска (логический диск DOS) или же несколько логических дисков.      Термин "логический диск DOS" не подразумевает использования только операционной системы DOS - может использоваться любая операционная система: Windows 95, 98, Me, NT, 2000, XP, Linux и т.д. Разбивать диск на разделы необходимо и в целях безопасности данных. Например, диск можно разделить по следующей схеме: C: - операционная система; D: - приложения; E: - данные.      В этом случае будут созданы основной и дополнительный разделы, а в дополнительном разделе будет создано два логических диска.      При такой схеме разделения диска данные будут в относительной безопасности - крах дисков C: и D: на них не повлияет. Кроме того, упрощается процедура резервного копирования данных: создается копия диска E:, а не папок, разбросанных по нескольким дискам.

Partition Magic - мощное средство для работы с диском: организация и защита информации, простой пошаговый визард для выполнения необходимых действий, предварительный просмотр изменений до их акцивации, гибкость конвертации из одной файловой системы в другую, поддержка FAT, FAT32, Linux ext. 2, Linux SWAP, NTFS и HPFS, а также оптимизация использования файловых систем, защита данных и многое другое. Partition Magic v8.0 Full - Мощнейшая программа для созданя, удаления, изменения размера и т.д. разделов жесткого диска. Умеет создавать новые разделы без потери данных. Поддерживаются практически все файловые системы. Разбиение жесткого диска на несколько разделов позволяет вам эффективно управлять операционными системами, программами и данными. PartitionMagic, мировой лидер среди программ управления разделами для настольных систем, позволяет вам без труда создавать разделы на жестком диске, изменять их размеры, а также делить и объединять разделы без потери данных. PartitionMagic разместит и защитит ваши данные, поможет справиться с несколькими операционными системами, преобразовать файловые системы различных типов друг в друга и устранить ошибки в таблицах разделов.

Возможности шины USB, взаимодействие с ОС.

Шина USB (Universal Serial Bus- универсальная последовательная шина) была придумана для того, чтобы присоединить к компьютеру все медленные устройства ввода-вывода, такие как клавиатура и мышь. Она использует маленький 4-проводной разъем, причем два провода поставляют электропитание к USB-устройствам. USB – это централизованная шина, по которой главное устройство каждую миллисекунду опрашивает устройтсва ввода-вывода, чтобы узнать, есть ли у них данные. Она может управлять загрузкой данных со скоростью 1,5 Мбайт/с. Все USB-устройства используют один драйвер, избавляя нас тем самым от необходимости установки новых драйверов для каждого нового USB-устройства. Поэтому USB-устройства можно присоединять к системе без ее перезагрузки.

Файловая система UNIX (s5, VFS, NFS).

Основной файловой системой Linux является его собственная ext2fs. Официальное ядро содержит поддержку более 20 различных файловых систем, включая FAT (FAT/VFAT/FAT32), ISO9660 (CDROM), HPFS (OS/2), NTFS (WindowsNT), SysV (SCO Unix и др.), UFS (BSD и др.). В стадии разработки находятся файловые системы: ext3fs (журналирующая версия ext2fs), RaiserFS (быстрая журналирующая файловая система). SGI и IBM занимаются разработкой поддержки своих журналирующих файловых систем XFS (из Irix) и JFS (из AIX) соответственно.

Дескриптор файла. Узел файловой системы i-node.

i-nodes (i-узлы)- сокращение от index-nodes- индекс-узлы. Каждый файл в UNIX имеет уникальный номер- свой i-номер, который идентифицирует файл. I-номер – это индекс в таблице i-узлов, содержащей по одному на файл. каждый i-узел включает в себя информацию о хозяине файла, о том, какие блоки на диске он занимает и т.д. I-узлы нумеруются от 1 до некоторого максимального числа. Каждый i-узел имеет 64 байт в длину и описывает ровно 1 файл. i-узел содержит учетную информацию (включая всю информацию, возвращаемую системным вызовом stat, который ее просто берет в i-узле), а также достаточное количество информации, чтобы найти все блоки файла на диске. Формат i-узлов варьируется от одной версии UNIX к другой. Как минимум i-узел должен содержать все поля, возвращаемые системным вызовом stat.

ОС Novell Netware.

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

Ограниченные средства для использования в качестве сервера приложений: не имеет средств виртуальной памяти и вытесняющей многозадачности, а поддержка симметричного мультипроцессирования отсутствовала до самого недавнего времени. Отсутствуют API основных операционных сред, используемых для разработки приложений, - UNIX, Windows, OS/2.

Серверные платформы: компьютеры на основе процессоров Intel, рабочие станции RS/6000 компании IBM под управлением операционной системы AIX с помощью продукта NetWare for UNIX.

Поставляется с оболочкой для клиентов: DOS, Macintosh, OS/2, UNIX, Windows (оболочка для Windows NT разрабатывается компанией Novell в настоящее время, хотя Microsoft уже реализовала клиентскую часть NetWare в Windows NT) Организация одноранговых связей возможна с помощью ОС PersonalWare Имеет справочную службу NetWare Directory Services (NDS), поддерживающую централизованное управление, распределенную, полностью реплицируемую, автоматически синхронизируемую и обладающую отличной масштабируемостью Поставляется с мощной службой обработки сообщений Message Handling Service (MHS), полностью интегрированную (начиная с версии 4.1) со справочной службой Поддерживаемые сетевые протоколы: TCP/IP, IPX/SPX, NetBIOS, Appletalk Поддержка удаленных пользователей: ISDN, коммутируемые телефонные линии, frame relay, X.25 - с помощью продукта NetWare Connect (поставляется отдельно) Безопасность: аутентификация с помощью открытых ключей метода шифрования RSA; сертифицирована по уровню С2. хороший сервер коммуникаций. Встроенная функция компрессии диска. Сложное обслуживание.

Удаленный доступ в компьютерных сетях.