
- •1. Назначение, основные этапы развития операционных систем
- •2. Современные ос и их классификация
- •3. Основные принципы построения ос
- •4. Мультипрограммность и мультизадачность
- •1. Процесс, ресурс, свойства, классификация
- •2. Концепция виртуализации
- •3. Принципы построения интерфейсов операционных систем. Интерфейсы прикладного программирования
- •4. Концепция прерывания
- •1. Система управления процессами. Процессы, потоки.
- •2. Средства распределения ресурсов
- •3. Система распределения оперативной памяти. Контроль и распределение памяти в ms-dos
- •4. Алгоритм распределения памяти ms_dos
- •5. Блок управления памятью (mcb)
- •1. Файловая система. Концепция управления файлами
- •2. Текстовые файлы. Двоичный файлы
- •2. Создание файла и создание связи с файлом
- •3. Удаление файла и связи с файлом
- •4. Модификация файлов
- •5. Операции с файлами
- •6. Организация данных на внешних носителях. Внешняя память на дисках
- •7. Файловая система fat. Структура и расположение системной информации файловой системы.
- •8. Структура boot
- •9. Таблица расположения файлов fat
- •10. Структура корневого директория root
- •11. Структура директория
- •12. Алгоритм поиска расположения файлов на диске
- •13. Определение начального кластера расположения файла на диске
- •14. Расчет номеров цепочки кластеров расположения фала на диске
- •15. Методы доступа к информации на дисках
- •16. Изменение элементов таблиц fat и root при выполнении команд dos: copy, move, del, rename.
- •1. Общие сведения о механизме прерываний
- •1. Аппаратные прерывания
- •2. Программные прерывания
- •3. Таблица векторов прерываний
- •4. Перехват прерывания
- •5. Каскадная обработка прерывания
- •1. Загрузка и запуск программ ms dos
- •2. Заголовок *.Exe
- •3. Psp текущей задачи
- •4. Дочерние процессы и их запуск
- •5. Среда процесса, наследование среды
- •6. Системные управляющие блоки dos (таблица векторной связи)
- •7. Завершение процесса
- •1. Архитектура ос Windows. Функционирование и взаимосвязь модулей операционной системы
- •2. Понятие окна. Принципы организации графического пользовательского интерфейса.
- •3. Операции с объектом – окно
- •4. Событийное управление программами
- •5. Сообщение. Цикл обработки сообщений. Очередь сообщений.
- •6. Процедура обработки сообщений, ее формат и правила написания
- •7. Синхронные и асинхронные сообщения, их передача и обработка
- •8. Ввод данных с клавиатуры
- •9. Коды oem, ansi, ascii, виртуальные коды
- •10. Фокус ввода
- •11. Обработка сообщений мыши
- •12. Таймер. Программирование таймера
- •1. Графические устройства и их контекст
- •2. Атрибуты контекста устройств
- •3. Логическая и физическая система координат
- •4. Режимы преобразования координат
- •5. Объекты gdi. Создание и использование
- •6. Gdi и векторная модель рисования
- •7. Быстрая векторная графика
- •8. Шрифт. Классификация, параметры шрифта, установка в контексте устройства.
- •Структура logfont
- •9. Атрибуты контекста устройств, влияющие на вывод текста
- •10. Методы gdi вывода текста
- •11. Управление направлением, размером и расстоянием между символами
- •1. Создание процесса
- •2. Описатель процесса
- •3. Командная строка процесса
- •4. Среда процесса.
- •5. Наследование объектов ядра дочерним процессом.
- •6. Класс процесса.
- •7. Текущий директорий процесса.
- •8. Получение инф-ции о процессе
- •9. Окончание процесса
2. Текстовые файлы. Двоичный файлы
Текстовые файлы
Файл – это логическое представление, принимаемое ко всему, начиная от дисковых файлов и оканчивая терминалами. В языке C++ файл связывается с потоком. Текстовый файл – это последовательность символов, информация в которой хранится в кодах ASCII. В таких файлах символы могут преобразовываться согласно требованиям среды. Потому может не наблюдаться соответствия между записываемыми или считываемыми символами и символами в файле и их количеством. Функция open открывает файл по умолчанию
ofstream mitya;
mitya.open("example.txt);
Двоичные файлы
Двоичный (неформатированный) файл – это последовательность байт, имеющих однозначное соответствие с записываемыми байтами, т.е. не происходит преобразование символов. В этом случае число записываемых байт и считываемых байт совпадает, но может произойти добавление некоторых нулевых байтов, которые служат для унификации представления информации. Для открытия файла в двоичном режиме в качестве параметра функции open надо передать ios::binary.
binout.open("binexample.txt",ios::binary|ios::trunc);
2. Создание файла и создание связи с файлом
В С++ работа с файлом производится путём связывания его с потоком. Для выполнения данной операции используется заголовочный файл fstream.h. Существует три разновидности потоков: ввода, вывода, ввода-вывода. Каждый из них характеризуется следующими классами: ofstream - вывод; ifstream - ввод, fstream - ввод-вывод. Изначально требуется создать объект одного из названных классов с помощью конструктора. Файл же создаётся автоматически, если не указан метод открытия ios::nocreate при использовании конструктора или метода open. Также можно использовать API функцию
CreateFile (LPCTSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDistribution,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile).
3. Удаление файла и связи с файлом
Удаление файла происходит с помощью функции remove(cons char *filename);
Удаление связи с файлом происходит с помощью функции fclose(FILE *stream);
Для удаления файла с физического носителя можно воспользоваться функцией
BOOL DeleteFile(
LPCTSTR lpFileName // file name
);
Функция CreateFile возвращает переменную типа HANDLE. При за-вершении работы с файлом его необходимо закрыть, используя функцию CloseHandle с описателем файла в качестве параметра.
Кроме того эта функция также работает с Access token, Com-munications device, Console input, Console screen buffer, Event, File, File mapping, Job, Mailslot, Mutex, Named pipe, Process, Semaphore, Socket, Thread.
4. Модификация файлов
Модификация файла.
Под модификацией файла понимается изменение содержимого файла, удаление записанного в файл, добавление к записанному дополнительной информации. Например, чтобы дописать информацию в конец файла можно использовать такую функцию:
fopen( file_name, "a" ), где file_name – это имя файла, в конец которого дописывается информация, а "a"- режим, который говорит о том что будет присоединена какая-то информация.
Пример из программы:
file = fopen( file_name, "a" );//добавление в конец текстового файла
while ((ch=getchar())!='.')
{
fprintf(file,"%c",ch);
}
fclose( file );
Для перемещения указателя внутри файла нужно использовать функцию
int fseek(FILE *stream, long offset, int origin);