66555

Работа с терминалом. Управление процессами. Взаимодействие процессов: каналы

Лабораторная работа

Информатика, кибернетика и программирование

Цель работы - изучение механизмов управления устройствами ввода-вывода UNIX при помощи специальных файлов устройств, основных принципов управления процессами, способов создания и уничтожения процессов, механизмов планирования процессов...

Русский

2014-08-22

50.5 KB

1 чел.

Санкт-Петербургский государственный политехнический университет

Факультет технической кибернетики

—————————

Кафедра информационной безопасности компьютерных систем

ОТЧЕТ

по лабораторной работе №6

«Работа с терминалом. Управление процессами.Взаимодействие процессов: каналы»

по курсу «Операционные системы»

Студент:

Никитин А. С.

гр. 2088/1

Преподаватель:

Степанова Т. В.

Санкт-Петербург — 2011

1. Формулировка задания

Цель работы - изучение механизмов управления устройствами ввода-вывода UNIX при помощи специальных файлов устройств, основных принципов управления процессами, способов создания и уничтожения процессов, механизмов планирования процессов, простейших видов взаимодействия процессов (посредством каналов pipe) в ОС UNIX и Windows.

2. Использованные теоретические сведения

3. Результаты работы

3.1. Выполнение примеров

3.2. Выполнение индивидуального задания

  1.  UNIX. Разработать программу, осуществляющую взаимодействие с терминалом через специальный файл устройства /dev/tty. Программа должна выполнять следующие операций при нажатии отдельных клавиш:
    •  переключение между каноническим (строковым) и неканоническим (символьным) режимами работы терминала;
    •  отображение курсора на экране и его перемещение по экрану (в неканоническом режиме).

Комбинации клавиш, используемые для выполнения перечисленных операций, должны задаваться в конфигурационном файле программы перед ее запуском или переназначаться во время ее работы.
#include <stdio.h>
#
include <stdlib.h>
#
include <termio.h>
#
include <unistd.h>
#
include <fcntl.h>
#
include <signal.h>

static int td; //Дескриптор файла терминала
static struct termio trest; //Структура, хранящая начальное состояние
//терминала

void clean(int sig) { //Обработчик сигнала QUIT
   
ioctl(td, TCSETA, &trest);
   
close(td);
   
exit(0);
}

int main(int argc, char **argv) {
   
struct termio tstr, tsym; //Структуры для двух режимов терминала
   
int c, md = 0; //Переменные для чтения символов и хранения режима
   
char cmod = ' '; //Изначально режим меняется пробелом
   
char up = 'w'; //Кнопки WSDA используются для передвижения курсора
   
char down = 's';
   
char right = 'd';
   
char left = 'a';
   
td = open("/dev/tty", O_RDWR | O_NDELAY); //Открытие файла терминала
   
ioctl(td, TCGETA, &trest); //Получение атрибутов
   
tstr = trest;
   
tsym = tstr;
   
tsym.c_lflag &= ~(ICANON | ECHO); //Задание атрибутов символьного
//режима
   
tsym.c_cc[VMIN] = 1;
   
tsym.c_cc[VTIME] = 0;
   
signal(SIGQUIT, clean); //Установка обработчика сигнала
   
while (1) { //Основной цикл
       
c = 0;
       
read(td, &c, 1); //Чтение символа
       
if (c == '\x10') { //Если нажата комбинация Ctlr+P, то
//переход в режим изменения настроек
           
ioctl(td, TCSETA, &tsym); //Переключение в символьный режми

//для удобства
           
write(td, "\033[J", 4);
           
write(td, "Keyboard setup\n", 15);
           
do { //Пропустить остаточные символы
               
c = 0;
               
read(td, &c, 1);
           }
while (c != 0);
           
write(td, "cmod\n", 5); //Настройка соответствующих клавиш
           
do {
               
cmod = 0;
               
read(td, &cmod, 1);
           }
while (cmod == 0);
           
write(td, "up\n", 3);
           
do {
               
up = 0;
               
read(td, &up, 1);
           }
while (up == 0);
           
write(td, "down\n", 5);
           
do {
               
down = 0;
               
read(td, &down, 1);
           }
while (down == 0);
           
write(td, "right\n", 6);
           
do {
               
right = 0;
               
read(td, &right, 1);
           }
while (right == 0);
           
write(td, "left\n", 5);
           
do {
               
left = 0;
               
read(td, &left, 1);
           }
while (left == 0);
           
if (md) //Переключение в прошлый режим
               
ioctl(td, TCSETA, &tsym);
           
else
               
ioctl(td, TCSETA, &tstr);
       }
       
if (c == cmod) { //Нажатие кнопки переключения режима
           
if (!md)
               
ioctl(td, TCSETA, &tsym);
           
else
               
ioctl(td, TCSETA, &tstr);
           
md = !md;
       }
       
if (md) { //В символьном режиме обработка клавиш перемещения
//курсора
           
if (c == up) write(td, "\033[1A", 4);
           
if (c == down) write(td, "\033[1B", 4);
           
if (c == right) write(td, "\033[1C", 4);
           
if (c == left) write(td, "\033[1D", 4);
       }
   }
   
return 0;
}

3.3. Ответы на контрольные вопросы

  1.  Опишите алгоритмы планирования процессов в Windows.
    Процессы просматриваются в порядке уменьшения приоритетов, а потом среди процессов с одинаковым приоритетом выбирается один для выполнения по алгоритму
    Round-Robin. При этом обычно процессу выделяется целый квант времени, после которого его выполнения прерывается. Однако, процессы с более высоким приоритетом могут вытеснять текущий процесс.
  2.  Для чего нужны приоритеты процессов в Windows?
    Приоритеты процессов необходимы для более эффективного планирования, а также для более рационального распределения процессорного времени, так как различным процессам нужно различное его количество.
  3.  Опишите реализацию приоритетов в Windows.
    В
    Windows есть 32 приоритета от 0 до 31, большее значение означает более высокий приоритет. Базовый приоритет процесса задаётся самим процессом, этот приоритет является основным для всех потоков, выполняющихся в процессе. Однако при планировании системой учитывается динамический приоритет потока, который основывается на базовом. Это сделано для более честного планирования, так как иначе потоки с очень низким приоритетом будут постоянно вытесняться другими потоками. Динамический приоритет повышается при нехватке процессорного времени, или после выхода потока из состояния ожидания.

4. Выводы

ОС UNIX предоставляет достаточно удобный интерфейс для работы с терминалом. Одной из составляющих удобства является файл терминала.

В Windows реализован достаточно гибкий алгоритм планирования процессов, однако не всегда планирование оказывается удачным, что связано с вытеснением процессов с низким приоритетом процессами с более высоким приоритетом.

Реализация каналов в операционных системах UNIX и Windows в целом достаточно похожа предоставляемой функциональностью. Основной проблемой при таком взаимодействии процессов может стать совместное использование канала несколькими процессами, однако для однонаправленной передачи данных одним процессом другому этот способ подходит идеально.

Приложение

Исходные тексты программ


 

А также другие работы, которые могут Вас заинтересовать

31675. Поняття про особистість та її структуру 26.5 KB
  Належність особистості до певного суспільства до певної системи суспільних відносин визначає її психологічну Та соціальну сутність. Характерними ознаками особистості є наявність у неї свідомості виконувані нею суспільні ролі суспільно корисна спрямованість її діяльності. Однією з найяскравіших характеристик особистості є її індивідуальність під якою розуміють своєрідне неповторне поєднання таких психологічних особливостей людини як характер темперамент особливості перебігу психічних процесів сприймання памяті мислення мовлення...
31676. Поняття про діяльність 23 KB
  Проте активність тварин і діяльність людини суттєво відрізняються за психологічними ознаками. Людська діяльність за сутністю є соціальною. Діяльність людини характеризується свідомістю і цілеспрямованістю.
31677. Поняття про мову та її функції 30 KB
  Біологічними передумовами виникнення мови були звуки та рухи які спостерігались у пращурів людини і слугували засобом спілкування задоволення потреби в обміні думками у пізнанні властивостей предметів та явищ що оточували людину і позначалися словами. Слово як одиниця мови має два боки зовнішній звуковий фонетичний та внутрішній смисловий семантичний. Унаслідок цього виникла багатозначність слів що також є продуктом історичного розвитку кожної мови. Основні елементи мови її словниковий склад і граматична будова.
31678. Різновиди мовлення 35.5 KB
  Усне мовлення. Це основний різновид мовлення який є звуковим і який інші сприймають за допомогою слуху. Усне мовлення поділяється на діалогічне та монологічне.
31679. Поняття про спілкування 25.5 KB
  Спілкування явище глибоко соціальне. Соціальна природа спілкування виражається в тому що воно завжди відбувається в середовищі людей де субєкти спілкування завжди постають як носії соціального досвіду. Соціальний досвід спілкування виявляється у змісті інформації що є його предметом знання відомості способи діяльності у засобах мовна та немовна комунікація при спілкуванні у суспільно вироблених у процесі історичного розвитку різновидах спілкування.
31680. Різновиди і форми уваги 35.5 KB
  Усі різновиди уваги тісно взаємоповязані і за певних умов переходять один в одного. Мимовільна увага властива і людині і тваринам хоча її виникнення у людини якісно відрізняється від такої уваги у тварин. Фізіологічним підґрунтям мимовільної уваги є безумовнорефлекторна орієнтувальна діяльність.
31681. Поняття про відчуття 36.5 KB
  Отже у нас різні смаки оцінки відчуття. Відчуття це суб єктивне відображення окремих властивостей предметів і явищ навколишнього світу в корі головного мозку внаслідок їх безпоснрнднього впливу на наші органи чуття.хто не довіряє відчуттям той дурень і неминуче перетвориться на споглядача відчуття не одурюють одурюють судження .
31682. Поняття про сприймання 23.5 KB
  Таке цілісне їх відображення в мозку людини характеризує другу ланку єдиного процесу чуттєвого пізнання сприймання. Сприймання це психічний процес відображення в мозку людини предметів та явищ у цілому у сукупності всіх їх якостей та властивостей при безпосередній дії на органи чуття. У результаті сприймання виникають субєктивні образи сприйманих обєктів уявлення.
31683. Поняття про мислення. Соціальна природа мислення 36.5 KB
  Соціальна природа мислення Пізнавальна діяльність людини починається з відчуттів і сприй мань. Вичерпні знання про обєкти дійсності їх внутрішню безпосередньо не дану у відчуттях і сприйманнях сутність людина одержує за допомогою мислення вищої абстрактної форми пізнан ня обєктивної реальності. Опосередкованість мислення виявляється і в тому що всі його акти відбуваються за допомогою слова та попе реднього досвіду який зберігається в памяті людини.