Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше
Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике
10.18. Операционные системы, файлы и использование памяти
Операционные системы. Из предыдущих обсуждений можно сделать вывод, что пользователю микрокомпьютера приходится часто запускать разнообразные программы, которые, к тому же, должны обмениваться между собой данными. Если, например, вам надо написать программу, то вы начинаете с запуска текстового редактора и создаете с его помощью текстовый файл, вводя строки программы с клавиатуры (хорошие программисты, насколько мы можем об этом судить, никогда не берут в руки карандаш). Сохранив на время этот файл, вы вызываете программу компилятора и компилируете сохраненный текстовый файл, чтобы получить файл с программой на языке ассемблера. Этот файл вы тоже сохраняете и запускаете ассемблер, который из файла с программой на языке ассемблера создает файл с перемещаемой программой на машинном языке. Наконец, компоновщик объединяет перемещаемую программу с другими ассемблированными подпрограммами и библиотечными программами и выдает выполнимую программу, которую вы (наконец-то!) запускаете. Для выполнения всех этих операций вам нужна сверх-программа, которая жонглировала бы всем этим хозяйством, отыскивая файлы на диске, загружая их в память и передавая управление соответствующим программам. Хотелось бы также избавиться от необходимости включения в каждую программу всех команд, требуемых для записи или чтения диска (включая обработку прерываний, загрузку регистров команд и состояний и проч.) или выполнения других операций по пересылке данных. Все это (и многое другое) входит в функции операционной системы, обширной программы, наблюдающей за загрузкой и запуском пользовательских программ (т. е. тех, которые вы пишите) и утилит (редактора, компилятора, ассемблера, компоновщика, отладчика и др.), а также управляющей вводом-выводом, системой прерываний и различными манипуляциями с файлами. Операционная система включает монитор для связи с пользователем (именно ему вы говорите, что надо вызвать редактор, или компилятор, или запустить программу) и набор «системных запросов», с помощью которых выполняемая программа может прочитать или записать строку текста на некотором устройстве, определить текущее время суток, передать управление другой программе, позволить нескольким «процессам» в многозадачной среде разделять между собой время ЦП или обмениваться данными, загружать программные «оверлеи» и т.д. Хорошая операционная система выполняет всю работу по управлению вводом-выводом, включая «спулинг» (буферизацию входных или выходных данных, позволяющую программе выполняться в то время, когда данные читаются или записываются на некотором устройстве). Выполняясь под управлением операционной системы, программа пользователя может не заботиться о прерываниях; прерывания обслуживаются системой и затрагивают ход программы только если программа сама хочет принять участие в обработке прерываний от конкретного устройства.
Вершиной системного программирования является «разделение времени» (использование одного компьютера многими пользователями одновременно), когда диск служит в качестве «виртуальной памяти» для программ неограниченного размера.
Примерами популярных микрокомпьютерных операционных систем являются MS-DOS (используемая на машинах IBM PC и их аналогах), (предназначенная для машин , преемников IBM PC), UNIX (разработанная в Bell Labs и широко используемая на машинах VAX, а также на компьютерах с микропроцессором 68000), и VMS (операционная система машин VAX, предоставляемая компанией).
Файлы. В качестве среды для массовой памяти широчайшее распространение получили магнитные диски, как гибкие  , с контактирующими головками чтения-записи, так и жесткие  , с плавающими головками. Типичные емкости лежат в пределах 1 Мбайт для гибких дисков и 20-500 Мбайт для небольших винчестеров. Данные организуются в виде файлов. Все машинные материалы - тексты, программы пользователей, утилиты (т. е. редактор, ассемблер, компилятор), библиотеки и проч., хранятся одинаковым образом и составляют файлы. Хотя среда массовой памяти разделяется на физические блоки, или секторы жестко определенного размера (обычно размер сектора составляет 512 байт), сами файлы могут иметь любую длину. Операционная система милосердно берет на себя всю заботу об адресации к дорожкам и секторам; она извлекает требуемые данные, если вы указываете имя файла. Имеется масса любопытнейших деталей файловой организации, которые мы не можем здесь обсудить из-за недостатка места. Важно только понять, что все эти программы (редактор, компилятор и др., так же как и исходный текст, скомпилированная программа и даже данные) хранятся на некотором устройстве массовой памяти как поименованные файлы, и система умеет извлекать их для вас (прочитайте, однако, в следующем разделе об электронных дисках). Осуществляя свои служебные обязанности, система выполняет огромный объем работ по обслуживанию файлов.
Недавние прибавления семейства устройств массовой памяти имеют в своей основе потребительскую электронику и обеспечивают очень высокую плотность хранения в маленьком объеме. Сюда относятся: (а) оптические диски вроде тех, что используются в проигрывателях, с емкостью около гигабайта. Они служат в качестве ПЗУ, -памяти (Write Once, Read Many - записать один раз, прочитать многократно) или как полностью стираемая память для записи/чтения; (б) видеокассеты формата VHS или 8 мм, которые позволяют иметь гигабайты памяти с возможностью записи/чтения на недорогой ленте. Основной недостаток кассет - большое время доступа. Обе упомянутые системы памяти используют изощренные методы коррекции ошибок, возникающих из-за дефектов поверхности и по другим причинам; в обычных аудио/видеоприменениях эти ошибки не имеют особого значения, однако при хранении данных или программ они, не будучи исправлены, носили бы разрушительный характер.
Использование памяти. Файлы хранятся в устройствах массовой памяти, однако программы в процессе их выполнения должны находиться в оперативной памяти. Простую автономную программу вроде той, что будет рассмотрена в следующей главе, можно загрузить почти в любое место памяти. Однако в компьютере с операционной системой всегда имеются специальные области, зарезервированные для выполнения специальных функций. Например, сама операционная система MS-DOS, вместе с ее интерпретатором команд, дисковыми буферами, стеком и прочим, обычно загружается в начало памяти, заполняя при этом векторами прерываний выделенные ячейки, адреса которых известны ЦП, в то время как часть MS-DOS, заключенная в ПЗУ, располагается в конце памяти, за областью, отведенной под видеобуферы дисплея.
Если компьютер работает под управлением операционной системы, выделением памяти под программы пользователя ведает система. Понимание этого момента особенно важно при использовании ПДП; в этом случае вы должны предоставить системе возможность определить, где будет располагаться ваш буфер данных, и использовать этот адрес в качестве стартового для блочной передачи по каналу ПДП.
Ситуация еще более усложняется, если программы по ходу выполнения выгружаются и загружаются (так называемый «свопинг») или перемещаются по памяти. В памяти одновременно может находиться много программ, которым в многозадачном режиме выделяются «кванты времени» ЦП. К тому же большинство микрокомпьютеров используют «отображение памяти», при котором физические адреса памяти отображаются на различные логические адреса (т. е. те, по которым программа располагается с ее точки зрения). Если всего сказанного недостаточно, чтобы сбить вас с толку, подумайте о «виртуальной памяти», используемой в более совершенных моделях микрокомпьютеров, когда ваша программа разделяется на небольшие «страницы», каждая из которых в любой момент времени может быть, а может и не быть в памяти; программа «листает» эти страницы, гоняя их между памятью и диском в безумном пароксизме бешеной активности.
Обсуждение памяти нельзя считать законченным, если не упомянут электронный (псевдо) диск, который можно организовать даже на относительно простых машинах, если только хватит оперативной памяти. Идея псевдодиска заключается в такой организации памяти, чтобы с точки зрения операционной системы она выглядела, как диск; в эту псевдодисковую память можно затем загрузить часто используемые программы. Такая процедура может оказаться полезной при разработке программ, когда приходится постоянно обращаться к редактору, компилятору, ассемблеру и компоновщику. При использовании псевдодиска работа идет значительно быстрее, поскольку отпадает необходимость в обращениях к настоящему диску. Правда, если произойдет отказ компьютера, вы потеряете все, что сделали, так как файлы не сохраняются на диске автоматически. Схожая идея лежит в основе кеш-памяти; в этом случае область ОЗУ хранит результаты последних обращений к диску.
Драйверы. Компьютерный мир полон разнообразия - каждый месяц мы сталкиваемся с новинками технологии в области запоминающих устройств (магнитных, оптических), принтеров (лазерные, электролюминесцентные), сетей и проч. Различное электронное оборудование требует и различных управляющих сигналов с разными требованиями к временной синхронизации и т. д. Это могло бы привести к серьезным программным трудностям, так как программное обеспечение, разработанное, например, для матричного принтера, абсолютно не годилось бы для лазерного наборного автомата.
Решение лежит в использовании драйверов, специальных программ, предназначенных для организации единого программного интерфейса с разнообразным оборудованием. Так, например, наборный язык ТЕХ создает файлы в формате зависящий от устройств); драйвер принтера (специфический для каждого используемого вами принтера) пережевывает файл и выплевывает соответствующие принтерные коды, заставляющие принтер работать должным образом. ТЕХ может работать с любым принтером, если только к этому принтеру у вас есть -транслирующий» драйвер. Сказанное относится и к устройствам массовой памяти, таким, как дисководы дисков; в результате вы можете взять любой из имеющегося на рынке множества дисков и подключить его к любому компьютеру - типа PC или Macintosh или с системой UNIX.
Драйверы являются частью системного программного обеспечения и средний пользователь компьютера может и не подозревать об их функционировании. Если, однако, вы разрабатываете новое оборудование для компьютера, вы, скорее всего, вскоре станете экспертом по драйверам, так как для того, чтобы заставить вашу аппаратуру играть заодно со всей остальной командой, вам придется написать для нее ваши собственные драйверы.
|
1 |
Оглавление
- ГЛАВА 7. ПРЕЦИЗИОННЫЕ СХЕМЫ И МАЛОШУМЯЩАЯ АППАРАТУРА
- 7.01. Соотношение точности и динамического диапазона
- 7.02. Бюджет погрешностей схемы
- 7.03. Пример схемы: прецизионный усилитель с автоматическим выбором нуля
- 7.04. «Бюджет погрешностей» при проектировании прецизионной схемы
- 7.05. Погрешности внешних цепей
- 7.06. Входные погрешности усилителя
- 7.07. Выходные погрешности усилителя
- 7.08. Усилители с автоподстройкой нуля (стабилизированные прерыванием)
- Кое-что еще о схемах с прерыванием
- ДИФФЕРЕНЦИАЛЬНЫЕ И ИЗМЕРИТЕЛЬНЫЕ УСИЛИТЕЛИ
- 7.09. Простой разностный усилитель
- 7.10. Стандартный измерительный усилитель на трех ОУ
- ШУМЫ УСИЛИТЕЛЕЙ
- 7.11. Происхождение и виды шумов
- 7.12. Отношение сигнал/шум и коэффициент шума
- 7.13. Шум тока и напряжения транзисторного усилителя
- 7.14. Проектирование малошумящих схем на биполярных транзисторах
- 7.15. Шум ПТ
- 7.16. Выбор малошумящих транзисторов
- 7.17. Шум дифференциальных усилителей и усилителей с обратной связью
- ИЗМЕРЕНИЕ ШУМА И ИСТОЧНИКИ ШУМА
- 7.18. Измерение без источника шума
- 7.19. Измерение с источником шума
- 7.20. Генераторы шумов и сигналов
- 7.21. Ограничение полосы частот и измерение среднеквадратичного (эффективного) напряжения
- 7.22. Попурри на тему шумов
- ПОМЕХИ: ЭКРАНИРОВАНИЕ И ЗАЗЕМЛЕНИЕ
- 7.23. Помехи
- 7.24. Сигнальное заземление
- 7.25. Межприборное заземление
- СХЕМЫ, НЕ ТРЕБУЮЩИЕ ПОЯСНЕНИЙ
- ДОПОЛНИТЕЛЬНЫЕ УПРАЖНЕНИЯ
- ГЛАВА 8. ЦИФРОВЫЕ СХЕМЫ
- 8.01. Цифровые и аналоговые сигналы
- 8.02. Логические состояния
- ЛОГИЧЕСКИЕ УРОВНИ
- 8.03. Числовые коды
- 8.04. Вентили и таблицы истинности
- 8.05. Схемы вентилей на дискретных элементах
- 8.06. Пример схемы с вентилями
- 8.07. Логические обозначения при заданных уровнях
- 8.08. Каталог идентичных вентилей
- 8.09. Принципиальные схемы вентилей на ИМС
- 8.10. Характеристики ТТЛ и КМОП
- 8.11. Элементы с тремя состояниями и с открытым коллектором
- КОМБИНАЦИОННАЯ ЛОГИКА
- 8.12. Логические тождества
- 8.13. Минимизация и карты Карно
- 8.14. Комбинационные функциональные схемы, реализованные на стандартных ИМС
- 8.15. Реализация произвольных таблиц истины
- ПОСЛЕДОВАТЕЛЬНОСТНАЯ ЛОГИКА
- 8.16. Устройства с памятью: триггеры
- 8.17. Тактируемые триггеры
- 8.18. Последовательностная логика-объединение памяти и вентилей
- 8.19. Синхронизатор
- МОНОСТАБИЛЬНЫЕ МУЛЬТИВИБРАТОРЫ
- 8.20. Характеристики одновибраторов
- 8.21. Пример схемы одновибратора
- 8.22. Предостережения относительно одновибраторов
- 8.23. Получение выдержки времени с помощью счетчиков
- ПОСЛЕДОВАТЕЛЬНОСТНЫЕ ФУНКЦИИ, РЕАЛИЗУЕМЫЕ НА СТАНДАРТНЫХ ИМС
- 8.24. Фиксирующие схемы-защелки и регистры
- 8.25. Счетчики
- 8.26. Регистры сдвига
- 8.27. Последовательностные ПМЛ
- Возможные применения программируемых логических интегральных схем (ПЛИС)
- 8.28. Разнообразные последовательностные схемы
- НЕКОТОРЫЕ ТИПОВЫЕ ЦИФРОВЫЕ СХЕМЫ
- 8.29. Счетчик по модулю n
- 8.30. Мультиплексируемый цифровой индикатор на светодиодах
- 8.31. Привод звездного телескопа
- 8.32. Генератор последовательности из n импульсов
- ПАТОЛОГИЯ В ЛОГИЧЕСКИХ СХЕМАХ
- 8.33. Проблемы статических режимов
- 8.34. Проблемы при переключениях
- 8.35. Прирожденные недостатки ТТЛ и КМОП
- СХЕМЫ, НЕ ТРЕБУЮЩИЕ ПОЯСНЕНИЙ
- ДОПОЛНИТЕЛЬНЫЕ УПРАЖНЕНИЯ
- ГЛАВА 9. СОПРЯЖЕНИЕ ЦИФРОВЫХ И АНАЛОГОВЫХ СИГНАЛОВ
- 9.01. Хронология логических семейств
- 9.02. Входные и выходные характеристики
- 9.03. Сопряжение логических семейств
- 9.04. Управление КМОП-и ТТЛ-входами
- 9.05. Управление цифровой логикой от компараторов и операционных усилителей
- 9.06. Некоторые замечания, касающиеся логических входов
- 9.07. Компараторы
- 9.08. Управление внешней цифровой нагрузкой от КМОП- и ТТЛ-элементов
- 9.09. Сопряжение n-МОП БИС
- 9.10. Оптоэлектроника
- ЦИФРОВЫЕ СИГНАЛЫ И ДЛИННЫЕ ЛИНИИ
- 9.11. Внутриплатные соединения
- 9.12. Межплатные соединения
- 9.13. Шины данных
- 9.14. Кабельные связи
- АНАЛОГО-ЦИФРОВОЕ ПРЕОБРАЗОВАНИЕ
- 9.15. Введение в аналого-цифровое преобразование
- 9.16. Цифро-аналоговые преобразователи (ЦАП)
- 9.17. Интегрирующие ЦАП
- 9.18. ЦАП с умножением
- 9.19. Выбор ЦАП
- 9.20. Аналого-цифровые преобразователи
- 9.21. Методы уравновешивания заряда
- 9.22. Некоторые необычные АЦП и ЦАП
- 9.23. Выбор АЦП
- ПРИМЕРЫ А/Ц-ПРЕОБРАЗОВАНИЯ
- 9.24. 16-канальная А/Ц-система сбора данных
- 9.25. 3 1/2 — знаковый цифровой вольтметр
- 9.26. Кулонометр
- СХЕМЫ ФАЗОВОЙ АВТОПОДСТРОЙКИ ЧАСТОТЫ
- 9.28. Проектирование ФАПЧ
- 9.29. Пример разработки: умножитель частоты
- 9.30. Захват и слежение в системе ФАПЧ
- 9.31. Некоторые примеры применения систем ФАПЧ
- ПСЕВДОСЛУЧАЙНЫЕ ДВОИЧНЫЕ ПОСЛЕДОВАТЕЛЬНОСТИ И ГЕНЕРАТОРЫ ШУМА
- 9.32. Цифровые методы генерации шума
- 9.33. Последовательности, генерируемые регистрами сдвига с обратными связями
- 9.34. Формирование аналогового шума с использованием последовательностей максимальной длины
- 9.35. Энергетический спектр последовательности, сформированной при помощи регистра сдвига
- 9.36. Низкочастотная фильтрация
- 9.37. Краткое заключение
- 9.38. Цифровые фильтры
- СХЕМЫ, НЕ ТРЕБУЮЩИЕ ПОЯСНЕНИЙ
- ДОПОЛНИТЕЛЬНЫЕ УПРАЖНЕНИЯ
- ГЛАВА 10. МИКРОЭВМ
- МИНИ-ЭВМ, МИКРОЭВМ И МИКРОПРОЦЕССОРЫ
- 10.01. Архитектура микроЭВМ
- НАБОР КОМАНД КОМПЬЮТЕРА
- 10.02. Язык ассемблера и язык машинных кодов
- 10.03. Упрощенный набор команд процессора Intel 8086/8
- 10.04. Программный пример
- СИГНАЛЫ МАГИСТРАЛИ И ЕЕ ФУНКЦИОНИРОВАНИЕ
- 10.05. Основные сигналы магистрали: данные, адрес, синхронизация
- 10.06. Программируемый ввод-вывод: вывод данных
- 10.07. Программируемый ввод-вывод: ввод данных
- 10.08. Программируемый ввод-вывод: регистры состояний
- 10.09. Прерывания
- 10.10. Обработка прерываний
- 10.11. Прерывания в целом
- 10.12. Прямой доступ в память
- 10.13. Сводный перечень сигналов магистрали IBM PC
- 10.14. Синхронный и асинхронный протоколы магистрали
- 10.15. Магистрали других микрокомпьютеров
- 10.16. Подключение к компьютеру периферийных устройств
- СИСТЕМНЫЕ КОНЦЕПЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- 10.17. Программирование
- 10.18. Операционные системы, файлы и использование памяти
- ПРИНЦИПЫ ПЕРЕДАЧИ ДАННЫХ
- 10.19. Последовательная связь и коды ASCII
- 10.20. Параллельная связь
- 10.21. Локальные вычислительные цепи
- 10.22. Пример интерфейса: аппаратная упаковка данных
- 10.23. Форматы чисел
|