2.2. Операционные системы
Все многообразие программ, используемых на современном компьютере, называется программным обеспечением (ПО). Программы, составляющие ПО, можно разделить на три группы: системное ПО, системы программирования, прикладное ПО. Ядром системного ПО является операционная система (ОС).
ОС – это неотъемлемая часть ПО, управляющая техническими средствами компьютера. Операционная система – это комплекс программ, которые выполняют функции посредника между пользователем и компьютером.
ОС, выполняя роль посредника, служит двум целям:
а) эффективно использовать компьютерные ресурсы;
б) предоставлять удобный интерфейс взаимодействия пользователя с компьютером.
В качестве ресурсов компьютера обычно рассматривают:
а) время работы процессора;
б) адресное пространство основной памяти;
в) оборудование ввода – вывода;
г) файлы, хранящиеся во внешней памяти.
Операционная система – это неотъемлемая часть вычислительного комплекса. Основными функциямя ОС являются управление:
а) процессами (распределяет ресурс — процессорное время);
б) памятью (распределяет ресурс — адресное пространство основной памяти);
в) устройствами (распределяет ресурс — оборудование ввода – вывода);
г) данными (распределяет ресурс — данные или файлы).
Одной из первых ОС для персонального компьютера была ДОС– дисковая операционная система фирмы Microsoft. Она изначально предполагала хранение ОС на диске. Работу диска можно функционально представить следующим образом:
Рис.2.2. Схема дисковода
Здесь на оси закреплено несколько дисков с магнито–чувствительным покрытием. На подвижной системе, которая может перемещаться с помощью электромагнита только в радиальном направлении вдоль поверхности дисков, закреплены магнитные головки, по одной на каждую поверхность дисков. Все диски вращаются с какой–то угловой частотой Ω, и магнитные головки плавают на воздушной подушке у поверхности дисков. Каждое фиксированное радиальное положение магнитных головок образует как бы цилиндр, а каждая магнитная головка – свою дорожку на этом цилиндре. Каждая дорожка при записи информации разбивается на сектора обычно длиной 512 байт.
В ДОС была принята файловая система FAT (File Allocation Table – таблица распределения файлов). На системном диске на нулевом цилиндре на нулевой дорожке в первом секторе размещается информация о формате диска и о месте положения на диске программы первоначальной загрузки. Далее располагаются две таблицы FAT, которые разбиваются на 12–, 16– или 32– битные ячейки, в них хранятся номера кластеров, образующих файлы. Кластер – это наименьший объем памяти, отводимый для файла на диске. Для дискеты размер кластера обычно равен размеру сектора, а для больших дисков размер кластера может составлять несколько секторов. Файл – это набор данных на внешнем носителе информации, например на диске. Создаются две таблицы FAT для большей надежности и обеспечения возможности восстановления случайно удаленных файлов. Обычно информация об удаленных файлов стирается только из первой таблицы.
Ось
Цилиндр
Дорожка
Электромагнит
Диски
За таблицами FAT идет корневой каталог, в котором для каждого файла отводится блок в 32 байта, куда записываются информация об имени и расширении файла, его атрибуты, размер, дата создания и номер первого кластера файла. В этой ячейке таблицы FAT записывается следующий номер кластера файла и т.д., пока не появится специальная запись, означающая последний кластер файла. Все остальные каталоги диска представляют собой обычные файлы с длиной, кратной 32 байтам, и специальным атрибутом файла – каталогом. За корневым каталогом до конца диска следует область данных, куда и помещаются все файлы.
Второй основной особенностью ДОС был текстовый режим работы дисплея, когда весь экран разбивался на 25 строк по 80 символов в каждой строке. В видеопамяти для каждого символа экрана отводилось два байта: один для хранения кода символа, а второй – для атрибута. В атрибуте хранилась информация о цвете символа и цвете фона. Всего могло быть 16 цветов символа и 8 цветов фона. Один бит отводился для возможного мигания символа. ДОС впрямую не поддерживала графический режим работы дисплея.
Третья особенность заключалась в том, что каждой программе можно было выделять не более 640 Кбайт оперативной памяти и вся эта память была доступна каждой программе. Это приводило к очень неустойчивой работе самой ОС. Любая прикладная программа могла нарушить работу ДОС и, как следствие, остановить работу компьютера.
Следующей широко распространенной операционной системой стала Windowsтой же фирмы Microsoft. Эта система изначально должна была работать в графическом режиме, хотя в ней и сохранилась поддержка текстового режима работы дисплея. Основной режим работы этой ОС – защищенный режим, когда каждой программе выделяется своя область памяти и никакая другая программа не может туда ничего записать или прочитать. Это стало возможным в связи с появлением новых процессоров Intel 386, 486 и Пентиум, которые стали поддерживать такие режимы работы.
Основу работы системы Windows составляет процесс обработки сообщений, которыми обмениваются окна (отсюда и название Windows – окна). В этой ОС может быть до 65535 различных видов сообщений и до 65535 окон различных программ.
Начиная с версий Windows NT/2000/XP, эта ОС стала поддерживать наряду с файловой системой FAT файловую систему NTFS, которая была разработана для компьютеров, работающих в сети, где очень важное значение имеет защита информации от несанкционированного доступа.
Как и любая другая система, NTFS делит все просранство на кластеры. NTFS поддерживает почти любые размеры кластеров – от 512 байт до 64 Кбайт, стандартом же считается кластер размером 4 Кбайт.
Диск NTFS условно делится на две части. Первые 12 % диска отводятся под так называемую MFT–зону – пространство, в котором располагается метафайл MFT. Запись каких–либо данных в эту область невозможна. В свободную чать MFT–зоны ничего не записывается – это делается для того, чтобы самый главный, служебный файл (MFT) не фрагментировался при своем росте. Остальные 88 % диска представляют собой обычное пространство для хранения файлов:
Рис.2.3. Распределение дискового пространства
Свободное место диска включает в себя всё физически свободное пространство – незаполненные куски MFT–зоны туда тоже включаются. Механизм использования MFT–зоны таков: когда файлы уже нельзя записывать в обычное пространство, MFT–зона просто сокращается, освобождая таким образом место для записи файлов. При освобождении места в обычной области MFT зона может снова расшириться.
Каждый элемент NTFS системы представляет собой файл – даже служебная информация. Самый главный файл на NTFS называется MFT, или Master File Table (общая таблица файлов). Именно он размещается в MFT – зоне и представляет собой централизованный каталог всех остальных файлов диска и, как ни парадоксально, себя самого. MFT поделен на записи фиксированного размера (обычно 1 Кбайт), и каждая запись соответствует какому–либо файлу (в общем смысле этого слова). Первые 16 файлов носят служебный характер и недоступны операционной системе – они называются метафайлами, причем самый первый метафайл – сам MFT. Эти первые 16 элементов MFT – единственная часть диска, имеющая фиксированное положение. Интересно, что вторая копия первых трех записей для надежности (они очень важны) хранится ровно посередине диска. Остальной MFT–файл может располагаться, как и любой другой файл, в произвольных местах диска – восстановить его положение можно с помощью его самого, «зацепившись» за самую основу – за первый элемент MFT.
Итак, у системы есть файлы – и ничего кроме файлов. Что включает в себя это понятие на NTFS? Прежде всего обязательный элемент – запись в MFT, ведь, как было сказано ранее, все файлы диска упоминаются в MFT. В этом месте хранится вся информация о файле, за исключением собственно данных: имя файла, размер, положение на диске отдельных фрагментов и т.д. Если для информации не хватает одной записи MFT, то используются несколько, причем не обязательно подряд.
Опциональный элемент – потоки данных файла. Во–первых, файл может не иметь данных – в таком случае на него не расходуется свободное место самого диска. Во–вторых, файл может иметь не очень большой размер. Тогда идет в ход довольно удачное решение: данные файла хранятся прямо в MFT, в оставшемся от основных данных месте в пределах одной записи MFT.
Довольно интересно обстоит дело и с данными файла. Каждый файл на NTFS в общем–то имеет несколько абстрактное строение – у него нет как таковых данных, а есть потоки (streams). Один из потоков имеет привычный нам смысл – данные файла. Но большинство атрибутов файла – тоже потоки! Таким образом, получается, что базовая сущность файла только одна – номер в MFT, а всё остальное опционально.
NTFS – отказоустойчивая система, которая вполне может привести себя в корректное состояние при практически любых реальных сбоях. Любая современная файловая система основана на таком понятии, как транзакция– действие, совершаемое целиком и корректно или не совершаемое вообще.
NTFS поддерживает автоматическое сжатие и шифрование файлов и разграничивает права доступа к файлам.
Приведем простенький пример работы с потоком файлов. Наберите в командной строке оператор:
Echo Stream–NTFS > test1.pas:stream
В результате будут создан файл test1 с расширением pas нулевой длины. Однако, если теперь набрать команду
More < test1.pas:stream ,
то мы увидим на экране строчку – Stream–TNFS. Это значит, что имя потока отделяется от имени файла двоеточием.
В настоящее время идет постоянное расширение возможностей операционной системы. Это касается работы в сети Интернет, создания распределенных приложений для работы с базами данных, использования представления данных на языке XML, технологии .NET FrameWork и т.д.
- Программирование в среде Delphi
- Программирование в среде Delphi
- 1. История развития вычислительной техники, системы счисления и единицы информации.................................................7
- 2. Структура персонального компьютера и операционные системы.........................................................................13
- 3. Основы алгоритмизации и работа в delphi..........................18
- 4. Базовые элементы delphi...................................................................26
- 5. Стандартные функции и подпрограммы................................30
- 6. Операторы delphi......................................................................................33
- 7. Операторы циклов....................................................................................35
- 18. Выделение памяти под объект и прародитель всех классов – tobject..........................................................................................84
- 19. Обработка исключительных ситуаций................................87
- 20. Основные классы и общие свойства компонентов...93
- 26. Технология com.....................................................................................129
- 1. История развития вычислительной техники, системы счисления и единицы информации
- 1.1. История развития вычислительной техники
- 1.2. Системы счисления
- 1.3. Единицы информации
- 2. Структура персонального компьютера и операционные системы
- 2.1. Структура персонального компьютера.
- 2.2. Операционные системы
- 3. Основы алгоритмизации и работа в delphi
- 3.1. Основы программирования
- 3.2. Программирование в среде Delphi
- 4. Базовые элементы delphi
- 4.1. Алфавит среды Delphi
- 4.2. Константы
- 4.3. Переменные
- 4.4. Основные типы переменных
- 4.5. Операции над переменными и константами
- 5. Стандартные функции и подпрограммы
- 5.1. Математические функции
- 5.2. Функции преобразования
- 5.3. Дополнительные системные подпрограммы и функции
- 6. Операторы delphi
- 6.1. Оператор присваивания
- 6.2. Оператор безусловной передачи управления
- 6.3. Условный оператор if
- 6.4. Оператор разветвления Case
- 6.5. Составной оператор
- 7. Операторы циклов
- 7.1. Оператор цикла For
- 7.2. Оператор цикла Repeat
- 7.3. Оператор цикла While
- 8. Работа с массивами
- 9. Работа со строками
- 9.1. Процедуры работы со строками
- 9.2. Функции работы со строками
- 10. Работа с записями
- 11. Процедуры и функции
- 12. Модуль unit
- 13. Работа со множествами
- 14. Работа с файлами
- 14.1. Текстовые файлы
- 14.2. Типированные файлы
- 14.3. Нетипированные файлы
- 15. Работа с файлами и каталогами
- 16. Динамические переменные и структуры данных
- 16.1. Динамические переменные
- 16.2. Работа со стеком
- 16.3. Работа со списками или очередями
- 16.4. Работа с деревьями
- 17. Основы объектно–ориентированного программирования
- 17.1. Объекты и классы
- 17.2. Области видимости класса
- 17.3. Свойства (Property) и инкапсуляция
- 17.4. Методы, наследование и полиморфизм
- 17.5. События (Events)
- 18. Выделение памяти под объект и прародитель всех классов – tobject
- 18.1. Выделение памяти под объект
- 18.2. Описание класса tObject
- 18.3. Операторы приведения типов классов
- 19. Обработка исключительных ситуаций
- 19.1. Два вида оператора Try
- 19.2. Программное создание исключительной ситуации
- 19.3. Основные исключительные ситуации
- 20. Основные классы и общие свойства компонентов
- 20.1. Класс tList
- 20.2. Класс tStrings
- 20.3. Общие свойства компонентов
- 21. Графические возможности delphi
- 21.1. Класс Tcanvas
- 21.2. Классы тGгарhic и тРicture
- 21.3. Классы tFont, tPen и tBrush
- 21.4. Работа с изображениями
- 22. Визуальные компоненты delphi
- 22.1. Компонент tBitBtn
- 22.2. Компоненты tDrawGrid и tStringGrid
- 22.3. Компонент tPageControl
- 22.4. Компонент tTimer
- 22.5. Компонент tGauge
- 22.6. Компонент tСolorGrid
- 23. Стандартные диалоговые окна и типовые диалоги
- 23.1. Стандартные диалоговые окна
- 23.2. Типовые диалоги
- 24. Форма, приложение и глобальные объекты
- 24.1. Форма и ее свойства
- 24.2. Объект Application
- 24.3. Глобальные объекты
- Объект ClipBoard
- Объект Screen
- Объект Printer
- 25. Межпрограммное взаимодействие
- 25.1. Обмен сообщениями
- 25.2. Динамический обмен данными
- 25.3. Совместное использование общей памяти
- 25.4. Каналы
- 25.5. Сокеты
- 26. Технология com
- 26.1. Интерфейс
- 27. Технология автоматизации
- 27.1. Основы ole Automation
- 27.2. Примеры использования серверов автоматизации
- 27.3. Компоненты ActiveX
- 28. Динамические библиотеки
- 28.1. Создание dll
- 28.2. Использование dll
- 28.3. Пример написания dll
- 29. Работа с базами данных
- 29.1. Основные определения
- 29.2. Взаимодействие приложения на Delphi с базами данных
- 29.3. Компоненты взаимодействия с базами данных
- If adoTable1.Locate(’fio,stag’,varArrayOf([’Иванов’,’10’]),[])Then …;
- 29.4. Работа с локальной базой данных
- 30. Основы языка sql
- 30.1. Составные части sql
- 30.2. Команда select
- 30.3. Пример использования запросов в Delphi
- 31. Создание собственных компонентов
- 32. Работа с реестром
- 33. Перспективы программирования в delphi
- Литература
- 220013, Минск, п.Бровки, 6