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 в целом достаточно похожа предоставляемой функциональностью. Основной проблемой при таком взаимодействии процессов может стать совместное использование канала несколькими процессами, однако для однонаправленной передачи данных одним процессом другому этот способ подходит идеально.

Приложение

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


 

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

33334. Коммутация сообщений и пакетов. Достоинства и недостатки. Области применения 29.06 KB
  Коммутация пакетов обеспечивает передачу пакетов из одного канала в другой подключенный к этому узлу.3 выполняется на базе одного и того же оборудования коммуникационной сети но позволяет обеспечить как коммуникацию каналов при N=1 так и коммуникацию пакетов при N=3. Первая оказывается дороже но строго гарантирует адресатам время доставки пакетов.
33335. Профессиональные системы подвижной радиосвязи 27.42 KB
  Профессиональные частные системы подвижной радиосвязи PMR Professionl Mobile Rdio PMR Public ccess Mobile Rdio исторически появились первыми. Системы обеспечивающие взаимодействие с телефонными сетями общего пользования получили название частных PMR а не обеспечивающие такого взаимодействия профессиональных PMR т. Профессиональные частные системы подвижной радиосвязи В системе с общедоступным пучком каналов транкинговые системы Рис.
33336. Сотовые системы радиосвязи 23.81 KB
  Тогда требуемые для 01 жителей Москвы 250 каналов можно получить например разделением обслуживаемой территории радиусом в 50 км на 25 ячеек радиусом по 10 км с организацией в каждой ячейке только 10 радиоканалов с одним и тем же набором частот. Группа ячеек в зоне обслуживания с различными наборами частот называется кластером. Обычно ее развертывание начинается с небольшого числа крупных ячеек которые через некоторое время постепенно трансформируются в большее число более мелких ячеек. При этом пропускная способность сети на территории...
33337. Системы персонального радиовызова 15.32 KB
  Современный рынок услуг подвижной связи характеризуется высокими темпами развития систем персонального радиовызова СПРВ которые гармонично сопрягаются с системами радиосвязи и передачи данных. По назначению СПРВ можно разделить на частные ведомственные и общего пользования. Частные СПРВ обеспечивают передачу сообщений в локальных зонах или на ограниченной территории в интересах отдельных групп абонентов. Под СПРВ общего пользования понимается совокупность технических средств через которые через ТФОП происходит передача в радиоканале...
33338. Системы беспроводного доступа (телефония, блютус, wi-fi, wi-max) 41.82 KB
  В 1992 году ETSI принял стандарт ETS300 175 на общеевропейскую систему беспроводных телефонов DECT предназначенную для передачи речевых сообщений и данных в полосе частот 1880. По своему функциональному назначению PCS является близким аналогом стандарта DECT но ориентирована на использование в рамках принятого в США распределения спектра частот и концепции развития персональной связи отличающихся от европейских. Рассмотрим подробнее характеристики общеевропейской системы беспроводных телефонов DECT. Стандарт DECT Digitl Europen Cordless...
33339. Общие сведения передаче информации. Основные понятия и определения. (Информация, сообщение, сигнал сообщения, информационный параметр сигнала сообщения) 14.89 KB
  Информация сообщение сигнал сообщения информационный параметр сигнала сообщения. Эта материальная система вместе с наблюдателем представляет собой источник сообщения информации. Таким образом сообщения являются материальным носителем информации. Представление информации в сообщении независимо от его вида определяет структурированную совокупность кодов конструкцию знаков символов или иных элементов из определенного алфавита которые отображают содержание передаваемого сообщения.
33340. Виды сообщений, основные параметры сигналов сообщений. Две функции сообщений 13.45 KB
  Различают оптические телеграмма письмо фотография и звуковые речь музыка сообщения. Документальные сообщения наносятся и хранятся на определенных носителях чаще всего на бумаге. Сообщения предназначенные для обработки на ЭВМ в электронном виде принято называть данными. информирующие и управляющие сообщения в системах управления техническими системами называют телеметрическими сообщениями.
33341. Первичные сигналы электросвязи. Виды и параметры первичных сигналов электросвязи 13.46 KB
  Виды и параметры первичных сигналов электросвязи. Поэтому непосредственная передача сигналов сообщений по каналам электросвязи как правило не возможна и их необходимо тождественно преобразовать в другой сигнал соответствующий используемым телекоммуникационным технологиям. Как правило поступающий от источника сигнал сообщения с помощью преобразователя сообщений преобразуется в электрический сигнал bt являющийся переносчиком сообщений в системах электросвязи.
33342. Формы сигналов: аналоговые непрерывные и аналоговые дискретные сигналы, цифровые сигналы. Взаимосвязь характеристик аналоговых и цифровых сигналов 35.63 KB
  По форме представления зависимости сигнала от времени все сигналы подразделяются на три основных вида: а аналоговые непрерывные сигналы непрерывного времени – сигналы заданные во всех точках временной оси; их реализации непрерывные функции времени рис.3 а; б дискретные: дискретные по уровню сигналы непрерывного времени – сигналы заданные на дискретном множестве уровней {ui} во всех точках временной оси рис.3 б; непрерывные по уровню сигналы дискретного времени –сигналы заданные на дискретном множестве {ti} точек временной...