
- •1. Понятие операционной системы (ос), ее отношение к аппаратному и программному обеспечению
- •2. Состав и основные функции ос
- •3. Классификация ос
- •4. Понятие дескрипторов и хэндлов
- •5. Ввод и вывод в стандартные файлы
- •6. Базовые средства использования файловой системы
- •Int open(char* filename, int access_mode, mode_t permission)
- •Int open(char* filename, int access_mode, mode_t permission)
- •9. Многопользовательская блокировка файлов
- •Int fcntl(int handle, int cmd, struct flock *ldata)
- •10. Функции управления курсором.
- •11. Многократный вывод символов и атрибутов.
- •12. Вывод в произвольную позицию экрана
- •13. Событийное программирование и его использование в функциях ввода.
- •14. Средства чтения содержимого экрана в Windows.
- •15. Средства чтения содержимого экрана в Unix.
- •Int hscreen;
- •18. Программные средства использования мыши в текстовом режиме Linux
- •Int Gpm_Open (Gpm_Connect *conn, int flag)
- •Int Gpm_GetEvent (Gpm_Event *event)
- •Int clicks;
- •19. Понятие процесса; параллельные и последовательные процессы
- •20. Состояния процесса, диспетчеризация процессов
1. Понятие операционной системы (ос), ее отношение к аппаратному и программному обеспечению
Операционной системой (ОС) называют комплекс программ, обеспечивающих взаимодействие прикладных программ и пользователей с аппаратурой компьютера. Т.е. операционная система – это промежуточное звено между аппаратной частью компьютера и частью прикладных программ. Наличие операционных систем избавляют разработчиков и пользователей заниматься управлением аппаратной частью и множеством управляющих кодов.
2. Состав и основные функции ос
Основные фукнции:
1) обслуживание информации, хранимой в компьютере;
2) программное управление устройствами компьютера;
3) обеспечение простого диалога компонентов ОС с пользователем или прикладной программой;
4) обеспечение эффективного использования системы путем задействования общих ресурсов или одновременного выполнения нескольких прикладных программ.
Состав:
3. Классификация ос
По кол-ву пользователей |
По кол-ву задач |
По кол-ву процессоров |
По назначению |
однопользовательские многопользовательские |
многозадачные однозадачные |
однопроцессорные много процессорные |
специализированные универсальные |
До недавнего времени ОС по типу используемого в них интерфейса с пользователем разделяли на текстовые и графические. К настоящему времени все современные ОС включают графический интерфейс либо как основной (в системах фирмы Microsoft), либо как дополнительную интерфейсную оболочку (в системах Unix).
4. Понятие дескрипторов и хэндлов
File Control Block (FCB) – это учётная информация для управления операционной системой, аналогия человеческого паспорта. Управляющие блоки размещаются в служебной области операционной системы, причем, как правило, в виде таблицы, и для доступа к ним используется номер строк такой таблицы. Этот номер строк таблицы управляющих блоков и называют handle.
Иным наименованием для хэндла, использовавшимся как раз в Unix, служит слово дескриптор.
Управляющий блок содержит учётную информацию, описывающую файл и необходимую для выполнения файловых операций. Для операций над файлом при обращении к системной функции в качестве одного из параметров вызова используется значение такого хэндла. По этому значению подпрограмма ОС обращается к соответствующей строке таблицы управляющих блоков и использует информацию из управляющего блока, отвечающего этой строке.
5. Ввод и вывод в стандартные файлы
В Unix для этих целей предназначены универсальные системные функции с прототипами
unsigned int read(int handle, void* buffer, unsigned int len)
unsigned int write(int handle, void* buffer, unsigned int len)
handle – хэндл файла,
buffer - адрес буфера для чтения или записи данных
len – запрашиваемое для чтения или задаваемое для записи число байтов.
Функции возвращают число байтов, которые им удалось передать при вводе или выводе. Это число может не совпадать с запрошенным, если ввод осуществляется с клавиатуры и завершается символом Enter.
В операционных системах клонов Windows использование стандартных файлов для программиста усложняется за счёт того что в данной системе нет фиксированных значений хэндлов. Их необходимо запрашивать следующей функцией:
HANDLE GetStdHandle(DWORD nStdHandle)
После значения хэндлов можно использовать в следующих функциях:
BOOL WINAPI ReadFile(HANDLE hFile, void* buffer, DWORD len, DWORD *pactualen, OVERLAPPED *pOverlapped);
BOOL WINAPI WriteFile(HANDLE hFile, void* buffer, DWORD len, DWORD *pactualen, OVERLAPPED *pOverlapped),
Ряд функций вывода языка Си используют так называемый буферизованный вывод. К этим функциям относятся все те программные функции, которые используют для обозначения файлов указатели типа FILE*. (printf() и fprintf()). Для их использования нужно явно очищать внутренний буфер следующей функцией:
fflush(stdout)