|
Введение Глава
1. Представление данных в вычислительных системах - Представление
данных в вычислительных системах
-
Введение в двоичную арифметику
-
Представление рациональных чисел При операциях над беззнаковыми (неотрицательными)
числами бит переноса можно интерпретировать как признак переполнения:
т. е. того, что результат нельзя представить числом с разрядностью АЛУ. Игнорирование
этого бита может приводить к неприятным последствиям: например, складывали мы
164 + 95, а получили в результате 3.
Иногда этот эффект, называемый "оборачиванием
счетчиков", имеет и полезное применение. Например, используя "часовой"
кварцевый генератор с частотой 32 768 Гц и 15-разрядный двоичный счетчик, мы можем
отмерять секунды по появлению бита переноса в 16-м разряде и избавляемся от необходимости
сбрасывать сам счетчик. Двоичное вычитание может выполняться аналогичным образом,
только необходимо использовать не таблицы сложения, а таблицы вычитания для двух
и трех слагаемых. Не утомляя себя и читателя выписыванием этих таблиц, скажем
сразу, что операция двоичного вычитания эквивалентна операции двоичного сложения
уменьшаемого с двоичным дополнением вычитаемого. Двоичное
дополнение строится таким образом: все биты числа инвертируются (нули заменяются
на единицы, и наоборот), а затем к результату добавляется единица. Доказательство
этого утверждения мы оставляем любопытному читателю, а сами просто рассмотрим
пример 1.2. - Представление
текстовых данных
-
Представление изображений
-
Представление звуков
- Операционная
система Windows Курс лекций по информатике
-
Упаковка данных
-
Контрольные суммы
-
Введение в криптографию
Глава
2. Машинные языки - Машинные
языки Центральный процессор современного компьютера — это устройство, исполняющее
команды. Полный набор команд конкретного процессора называют машинным
языком или системой команд (иногда систему
команд называют также архитектурой, но это слово слишком перегружено различными
значениями).
Различные процессоры часто имеют одну и ту же" (или слабо
варьирующую) систему команд — например, процессоры Intel 80386, 486, Pentium,
Pentium II, AMD Кб, Athlon и т. д. — далее в тексте книги мы будем называть все
эти процессоры х86. Процессоры, которые могут исполнять программы на одном
и том же машинном языке, называются бинарно-совместимыми.
Отношение бинарной совместимости не всегда симметрично: например, более новый
процессор может иметь дополнительные команды — тогда он будет бинарно-совместим
с более старым процессором того же семе,йства, но не наоборот. Нередко бывает
и так, что более новый процессор имеет совсем другую систему команд, но умеет
исполнять программы на машинном языке старого процессора в так называемом режиме
совместимости — например, все процессоры семейства х86 могут исполнять программы
для Intel 8086 и 80286. Некоторые ОС для х8б даже предоставляют возможность собрать
единую программу из модулей, использующих разные системы команд. - Форматы
команд машинного языка
-
Команды перехода
-
Регистры PPD-файла
-
Адресация оперативной памяти
-
Режимы адресации Pascal.
Курс лекций
-
Банки памяти
- CISC-
и RISC-процессоры
-
Языки ассемблера
Глава
3. Загрузка программ Выяснив,
что представляет собой программа , давайте рассмотрим процедуру ее загрузки
в оперативную память компьютера (многие из обсуждаемых далее концепций, впрочем,
в известной мере применимы и к прошивке программы в ПЗУ). Для начала предположим,
что программа была заранее собрана в некий единый самодостаточный объект, называемый
загрузочным или загружаемым модулем. В ряде
операционных систем программа собирается в момент загрузки из большого числа отдельных
модулей, содержащих ссылки друг на друга, но об этом ниже. Для того чтобы
не путаться, давайте будем называть программой ту
часть загрузочного модуля, которая содержит исполняемый код. Результат загрузки
программы в память будем называть процессом или, если
нам надо отличать загруженную программу от процесса ее исполнения, образом
процесса. К образу процесса иногда причисляют не только код и данные процесса
(подвергнутые преобразованию как в процессе загрузки, так и в процессе работы
программы), но и системные структуры данных, связанные с этим процессом. В старой
литературе процесс часто называют задачей.
Глава
4. Управление оперативной памятью
Глава 5. Сегментная и страничная
виртуальная память
-
Такая адресация реализуется аппаратно. Процессор имеет специальное устройство,
называемое диспетчером памяти или, как его называли
в старой русскоязычной литературе, УУП (Устройство Управления
Памятью, ср. MMU — Memory Management Unit). В некоторых процессорах, например
в MC68020 или MC68030 или в некоторых RISC-системах, это устройство реализовано
на отдельном кристалле; в других, таких как х86 или современные RISC-процессоры,
диспетчер памяти интегрирован в процессор.
В PDP-11 сегментов всего восемь,
поэтому дескрипторы каждого из них размещаются в отдельном регистре (на самом
деле, регистров не восемь, а шестнадцать — восемь для пользовательского адресного
пространства и восемь для системного). На 32-разрядных машинах количество сегментов
измеряется тысячами, а страниц — иногда и миллионами, поэтому приходится прибегать
к более сложной схеме. -
Сегменты, страницы и системные вызовы
-
Взаимно недоверяющие подсистемы
-
Сегменты, страницы и системные вызовы (продолжение)
-
Разделяемые библиотеки
- Страничный
обмен
-
Управление своп-файлом
-
Одноуровневая память
Глава
6. Компьютер и внешние события
-
Практически все функции современных вычислительных систем так или иначе сводятся
к обработке внешних событий. Единственная категория приложений, для которых внешние
события совершенно неактуальны — это так называемые пакетные
приложения, чаще всего — вычислительные задачи. Доля таких задач в общем
объеме компьютерных приложений в наше время невелика и постоянно падает. В остальных
же случаях, даже если не вспоминать о специализированных управляющих компьютерах,
серверы обрабатывают внешние по отношению к ним запросы клиентов, а персональный
компьютер — реагирует на действия пользователя.
Различие между управляющими
системами (приложениями реального времени) и системами общего назначения (термин
— система разделенного времени вышел из употребления
и не всегда точно отражает суть дела) состоит лишь в том, что первые должны обеспечивать
гарантированное время реакции на событие, в то время как вторые "всего лишь"
— предоставить хорошее среднее время такой реакции и/или обработку большого количества
событий в секунду. - Опрос
-
Канальные процессоры и прямой доступ к памяти
-
Прерывания
- Исключения
-
Многопроцессорные архитектуры
Глава
7. Параллелизм с точки зрения программиста
- В предыдущей главе мы видели,
что даже в современном однопроцессорном
персональном компьютере происходит множество параллельных процессов: звуковая
карта играет, жесткий диск и сетевой интерфейс передают данные, пользователь двигает
мышью — работа кипит! А что начнется, если пользователь запустит задание на печать,
так и просто страшно подумать. Написание программ, способных работать в среде
с множеством параллельно происходящих процессов, представляет собой нетривиальную
задачу. На первый взгляд, сложности здесь никакой нет — аппаратура предоставляет
нам механизм прерываний. Обработал прерывание — и наступило счастье. В действительности,
никакого счастья от одной только обработки прерывания не наступит, пока мы не
сообщим о происшедшем событии основному потоку программы, заинтересованной в этом
событии.
- Формулировка
задачи
-
Мертвые и живые блокировки
-
Примитивы синхронизации
-
Гармонически взаимодействующие последовательные потоки
-
Системы, управляемые событиями
Глава
8. Реализация многозадачности на однопроцессорных компьютерах
- В предыдущей
главе мы упоминали о возможности реализовать
параллельное (или, точнее, псевдопараллельное) исполнение нескольких потоков
управления на одном процессоре. Понятно, что такая возможность дает значительные
преимущества. В частности, это позволяет разрабатывать прикладные программы, которые
могут исполняться без переделок и часто даже без перенастроек и на одно-, и на
симметричных многопроцессорных машинах. Кроме того, многопоточность
полезна и сама по себе, хотя и сопряжена с определенными неудобствами (перечисленными
в предыдущей главе) при реализации взаимодействия параллельных нитей.
- Кооперативная
многозадачность
-
Вытесняющая многозадачность
-
Монолитные системы и системы с микроядром
Глава
9. Внешние устройства
- Все
без исключения приложения вычислительных систем , так или иначе, связаны с
использованием внешних, или периферийных
устройств. Даже чисто вычислительные задачи нуждаются
в устройствах для ввода исходных данных и вывода результата. Без преувеличения
можно сказать, что процессор, не имеющий никаких внешних устройств, абсолютно
бесполезен.
У вычислительных систем первых поколений набор периферийных устройств
часто исчерпывался упомянутыми устройствами для ввода исходных данных и вывода
результата вычислений, поэтому до сих пор модули ОС, работающие с периферией,
называют подсистемой ввода-вывода (input/output subsystem).
У большинства современных компьютеров набор внешних устройств весьма обширен,
и функции многих из них не могут или лишь с определенной натяжкой могут быть описаны
как ввод и вывод. - Доступ
к внешним устройствам
-
Простые внешние устройства
-
Порты передачи данных
-
Шины
- Устройства
графического вывода
-
Запоминающие устройства прямого доступа
Глава
10. Драйверы внешних устройств
- Драйвер
(driver) представляет собой специализированный программный модуль, управляющий
внешним устройством. Слово driver происходит от глагола to drive (вести) и переводится
с английского языка как извозчик или шофер: тот, кто ведет транспортное средство.
Драйверы обеспечивают единый интерфейс для доступа к различным устройствам, тем
самым устраняя зависимость пользовательских программ и ядра ОС от особенностей
аппаратуры.
Драйвер не обязательно должен управлять каким-либо физическим
устройством. Многие ОС предоставляют также драйверы виртуальных устройств или
псевдоустройств — объектов, которые ведут себя аналогично
устройству ввода-вывода, но не соответствуют никакому физическому устройству. -
Функции драйверов
-
Многоуровневые драйверы
-
Загрузка драйверов
-
Архитектура драйвера
-
Запросы к драйверу
-
Сервисы ядра, доступные драйверам
-
Асинхронная модель ввода-вывода с точки зрения приложений
-
Спулинг
Глава
11. Файловые системы
- Одним из первых внешних устройств после клавиатуры
и телевизора, которые перечисляются в любом руководстве по персональным компьютерам
для начинающих, является магнитный
диск. Вообще говоря, вместо магнитного диска в наше время может использоваться
и какая-то другая энергонезависимая память, например, флэш или файловьш сервер,
но наличие такой памяти является очень важным. Ведь вы же не будете набирать вашу
программу каждый раз при новом включении компьютера. Правда, на 16-разрядных машинах
такое еще было возможным; автору доводилось слышать легенды о людях, которые могли
по памяти набрать на консольном мониторе PDP-11 тетрис. Впрочем, для современных
прикладных программ, размеры загрузочных модулей которых измеряются сотнями мегабайтен,
это невозможно.
- Простые
файловые системы
- "Сложные"
файловые системы
- Устойчивость
ФС к сбоям
- Драйверы
файловых систем
Глава
12. Безопасность
-
По мере компьютеризации общества в электронную форму переносится все больше
и больше данных, конфиденциальных по своей природе: банковские счета и другая
коммерческая информация, истории болезни и т. д. Проблема защиты пользовательских
данных от нежелательного прочтения или модификации встает очень часто и в самых
разнообразных ситуациях — от секретных баз данных Министерства обороны до архива
писем к любимой женщине.
Причин, по которым пользователь может желать скрыть
или защитить свои данные от других, существует очень много, и в подавляющем большинстве
случаев эти причины достойны уважения. Совершенствование средств доступа к
данным и их совместного использования всегда порождает и дополнительные возможности
несанкционированного доступа. -
Формулировка задачи
-
Сессии и идентификаторы пользователя
-
Аутентификация
-
Аутентификация в сети
-
Авторизация
-
Ресурсные квоты
-
Атаки на систему безопасности
-
Практические рекомендации
Приложение.
Обзор архитектур современных ОС
- Обзор
архитектур современных ОС
- MVS,
OS/390, z/OS
- Семейство
Unix
- Семейство
СР/М
Заполните заявку и в кратчайшие сроки квалифицированные
специалисты выполнят ВАШ заказ за приемлемую цену Диплом, курсовая,
реферат диссертация, билеты к экзаменам, контрольная на заказ
|