
- •Курсовой проект
- •Выбор архитектуры вычислительной системы
- •3 Вытесняющая многозадачность и средства взаимодействия в ос windows хх и windows nt
- •События (events);
- •4 Проектирование командного языка ос
- •5 Определение состава и общей структуры системы
- •6 Формирование базы данных ос
- •7 Проектирование структуры и реализация логики управления файловой системы
- •8 Общее описание функционирования ос
4 Проектирование командного языка ос
4.1 Интерактивные команды
Правила именования:
физические устройства именуются кодом из латинских букв и цифр;
логические диски именуются буквами латинского алфавита (‘a’…’z’);
файлы, каталоги и процессы именуются произвольными именами, состоящих из любых букв и цифр в произвольном порядке (имена содержащие пробелы берутся в двойные кавычки).
Таблица 1 - Таблица интерактивных команд
Мнемоника |
Наименование |
Параметр 1 |
Параметр 2 |
Описание |
||||
Тип |
Диапазон значений |
по умолчанию |
Тип |
Диапазон значений |
по умолчанию |
|||
LogIn |
Начало сеанса работы пользователя |
строка |
Буквы |
“гость” |
пароль |
символы |
- |
Начало сеанса работы и загрузка личных параметров (параметр 1 – имя пользователя, параметр 2 – пароль) |
LogOff |
Завершение сеанса работы пользователя |
- |
- |
- |
- |
- |
- |
Завершение сеанса работы |
CreateProc |
Создать процесс |
строка |
Буквы и цифры |
- |
|
|
|
Создание и запуск процесса с заданным именем |
GoToProc |
Перейти на процесс |
строка |
Буквы и цифры |
- |
- |
- |
- |
Перейти на созданный процесс для непосредственной работы |
KillProc |
Уничтожить процесс |
строка |
Буквы и цифры |
- |
- |
- |
- |
Принудительное уничтожение процесса с заданным именем |
CreateDir |
Создать каталог |
строка |
Буквы и цифры |
- |
Строка |
a, r, h, s |
a |
Создать каталог с заданным именем (1 параметр - путь) и атрибутами (а – архивный, r – только чтение, h – скрытый, s – системный) |
DeleteDir |
Удалить каталог |
строка |
Буквы и цифры |
- |
- |
- |
- |
Удалить каталог с заданным именем (путь) |
CreateFile |
Создать файл |
строка |
Буквы и цифры |
- |
Строка |
a, r, h, s |
a |
Создать файл с заданным именем и атрибутами |
DeleteFile |
Удалить файл (ы) |
строка |
Буквы и цифры, *, ? |
- |
- |
- |
- |
Удалить файл с заданным именем (путь) (* - любые символы, ? – любой символ) |
Copy |
Копирование |
строка |
Буквы и цифры, *, ? |
- |
Строка |
Буквы и цифры |
- |
Копировать файлы и каталоги из источника (задание расположения файла, который требуется скопировать – имя ) в назначение (задание расположения, в которое требуется скопировать файл) |
Move |
Перенос файлов |
Строка |
Буквы и цифры, *, ? |
- |
Строка |
Буквы и цифры |
- |
Записать системные файлы из источника (путь или имя файлов для переменных) в результат (путь или имя, куда требуется переместить файл) |
Access |
Право на доступ |
Строка |
Буквы и цифры, *, ? |
- |
Строка |
Буквы |
- |
Устанавливает разрешение на доступ к файлам и каталогам (параметр 1 – маска файлов, параметр 2 – группа пользователей, имеющих право на доступ) |
Info |
Информация |
Строка |
Буквы и цифры, *, ? |
- |
Строка |
dir, file, proc |
proc |
Выводит информацию на экран о состоянии процесса или о директории или о файле |
4.2 Системные вызовы
Таблица 2 - Таблица системных вызовов
Системная функция |
Наименование |
Параметр 1 |
Параметр 2 |
Описание |
||
Тип |
Диапазон значений |
Тип |
Диапазон значений |
|
||
CrChildProc |
Создать дочер. процесс |
строка |
Буквы |
- |
- |
Создание дочернего процесса |
WaitForProc |
Ожидать сообщение от процесса |
строка |
Буквы |
- |
- |
Ожидание сообщения от процесса |
KillChildProc |
Уничтожить процесс |
строка |
Буквы |
- |
- |
Принудительное уничтожение дочернего процесса64 |
GetCodeExitChild |
Получить код завершения |
строка |
Буквы |
- |
- |
Получить код завершения дочернего процесса |
GetCodeExit |
Получить код завершения |
строка |
Буквы |
- |
- |
Получить код завершения процесса |
SelectMem |
Выделить память |
число |
0.. 216 |
число |
0..max |
Выделение памяти с 1 параметром – адрес и 2 параметром – кол-во (max – системная переменная, хранящая максимальное значение выделяемой памяти) |
FreeMem |
Освободить память |
число |
0…216 |
- |
- |
Освобождение памяти по указателю (параметр – адрес) |
InPort |
Ввод из порта |
число |
0..10 |
число |
0.. 216 |
Ввод из порта (1 параметр – адрес порта, т.е. № порта, 2 параметр – адрес назначения ) |
OutPort |
Запись в порт |
число |
0..10 |
число |
0..216 |
Запись в порт(1 параметр – адрес порта, т.е. № порта, 2 параметр – адрес назначения ) |
OpenFile |
Открыть файл |
строка |
Буквы |
число |
0..216 |
Открыть файл ([/r]-открыть для чтения; [/w]-открыть зля записи;[/p]-пароль для доступа;) 1 параметр – путь. имя, 2 параметр - адрес |
CloseFile |
Закрыть файл |
число |
0.. 216 |
- |
- |
Закрыть файл (параметр – адрес) |
InstPosit |
Установить позицию файла |
число |
0.. 216 |
число |
0..232 |
Установить позицию в файле, заданным своим дескриптором (1 параметр – адрес файла, 2 параметр - позиция) |
WriteFile |
Запись байта в файл |
число |
0.. 216 |
число |
0..255 |
Записать байт в файл и сместить позицию (1 параметр – адрес, 2 параметр – на сколько сместить позицию) |
ReadFile |
Чтение байта из файла |
число |
0.. 216 |
число |
0..255 |
Прочитать байт из файла и сместить позицию |
4.3 Язык пакетных файлов
Пакетные файлы, также называемые программами пакетной обработки или сценариями, позволяют упростить выполнение утомительных и часто используемых операций. Пакетный файл представляет собой неформатированный текстовый файл, содержащий 1 или несколько команд и имеющий расширение имени .bat и .cmd.
В пакетный файл можно включать любую команду. Некоторые команды, такие команды как FOR, GOTO и IF,позволяют выполнить обработку условий в пакетных файлах.
Например, IF позволяет запускать команды в зависимости от выполнения заданного условия. Другие команды позволяют управлять выводом и вводом, а также запускать другие пакетные файлы.
Таблица 3 – Язык пакетных файлов
Формат команды |
Наименование |
Описание |
IF [not] строка 1 == строка2 команда [else выражение] IF [not] ERRORLEVEL число команда [else выражение] IF [not] exist имя_файла команда [else выражение] IF строка1 оп_сравнения строка2 команда [else выражение]
|
Обработка условий в пакетных программах |
Not – задает выполнение команды только в случае невыполнения условия Errorlevel число – условие выполняется, если предыдущая команда завершилась с кодом, равным или большим число Команда – команда, кот-я д/б обработана в случае выполнения условия Строка1==строка2 – условие выполняется, если строка1 и строка2 совпадают Exist имя_файла – условие выполняется, если существует файл с именем имя_файла Оп_сравнения EQU – равно, NEQ – не равно, LSS – меньше, LEQ – меньше и равно, GTR – больше, GEQ – больше и равно Выражение – команда и все ее параметры для обработки в командной строке при выполнении оператора else |
GOTO <метка> |
Безусловный переход |
В пакетной программе передает управление ОС в строку, определенную меткой. Когда метка найдена, выполнения продолжается со следующей за ней строки. Метка – строка в пакетной программе, к которой выполняется переход |
PAUSE |
пауза |
Приостанавливает выполнение пакетной программы с выводом сообщения об ожидании нажатия пользователем любой клавиши |
CALL <путь> <пакетные_параметры><:метка> <аргументы> |
Вызов пакетного файла |
Вызов одного пакетного файла из другого без завершения выполнения первого файла Путь – задает имя и место положение пакетного файла для запуска Пакетные_параметры – задает данные командной строки, используемые программой пакетной обработки :метка – указывает метку, на которую должно быть передано управление программой пакетной обработки Аргументы – задает данные командной строки, которые передаются в новый экземпляр программы пакетной обработки, начиная с :метка |
ERRORLEVEL – Системная переменная, хранящая код завершения процесса для данного пакетного файла.