Методические указания к лабораторным работам по дисциплине «Операционные системы»




Скачать 276.79 Kb.
НазваниеМетодические указания к лабораторным работам по дисциплине «Операционные системы»
страница4/5
ТипМетодические указания
rykovodstvo.ru > Руководство эксплуатация > Методические указания
1   2   3   4   5

6. ПРИМЕР ВЫПОЛНЕНИЯ ЛАБОРАТОРНЫХ РАБОТ


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

Текст программы можно представить в следующем виде: #include <stdio.h>
#
include <signal.h>

#include

sigjmp_buf obl; /* область памяти для запоминания

состояния процесса */

int ll = 0; /* счетчик прерывания */

main()
{
void pol3(); /* подпрограмма обработки прерывания */


char nl[l00], n2[100]; /* символьные массивы для считывания

информации из канала */
int vv; /* флаг завершения работы программы */


int gg = 0;

int g[2]; /* дескрипторы межпроцессного канала */
signal (SIGINT, ро13); /* уведомление о том, что в случае при­хода сигнала прерывания SIGINT, управление передается процедуре ро13 */


sigsetjmp (obl,1); /* запоминание текущего состояния процесса */
vv = 0;
do {


sigsetjmp(obl,1);

pipe(g); /* создание межпроцессного канала */
if (fork() == 0) /* распараллеливание процесса */
{ /* процесс-потомок */


close(1); /* закрытие стандартного вывода */ close(g[0]); /* закрытие межпроцессного канала на чтение */
dup2(g[l],1); /* дублирование дескриптора межпроцессного канала на стандартный вывод */


close(g[1]); /* удалить копию */

execl("/bin/ps", "ps", "ax", 0); /* вывод всех актив­ных процессов в системе в межпроцессный канал */

}
else


{ /* процесс-родитель */

wait(&s); /* ожидание окончания процесса-потомка */
sigsetjmp(obl,1);


close(g[1]);
read(g[0], n, 80); /* считывание 1-ой записи из меж­процессного канала */


read(g[0], nl, 80); /* считывание 2-й записи */
rr = cmpstr(n, nl); /* сравнение двух строк */
sigsetjmp(obl,1);


while (rr != -1)
{


if(n1[7] == 'j') break; /* процесс управляется

пользовательским терминалом */
m = atoi(nl); /* определение первого целого


числа из строки nl */
if(m == 0) vv = 1;
if((gg == 0) && (m != 0)) printf ("%d\n", gg);
if (gg != m) printf ("%d\n", m);
gg = m;
read (g[0], n, 80);
rr = cmpstr(n, nl);
strcpy(nl, n);
sleep( 1); /* ожидание 1 сек. */


}

}

}

while (vv != 1);

sigsetjmp(obl,1);

printf("good bye !!!\n");

}

/* Подпрограмма обработки прерывания */

void po13()

{

ll ++;

signal (SIGINT, pol3);

if (11 > 9) /* не больше 9ти прерываний */

{

printf ("good bye\n");

exit(l);

}

printf(“ П P E P Ы В А Н И E !!! \n");
siglongjmp (obl, 1); /* возвращение на последний setjmp */


}

/* Подпрограмма сравнения строк */

int cmpstr(vv, nn)

{

char vv[ ], nn[ ];

int i, ml, m2;

for (m1 = 0; vv[m1] != '\0'; ml ++);
for (m2 = 0; vv[m2] != '\0'; m2 ++);


if (m1 != m2) return (0); /* длины строк vv и nn разные */ for (i = 0; i < ml; i ++)

{

if (vv[i] != nn[i]) return (i + 1); /* строки равны по
длине, но отличаются (i + 1) символом */
return(-1); /* строки одинаковы */
}


}
1   2   3   4   5

Похожие:

Методические указания к лабораторным работам по дисциплине «Операционные системы» iconМетодические указания к лабораторным и домашним работам по дисциплине «Операционные системы»

Методические указания к лабораторным работам по дисциплине «Операционные системы» iconМетодические указания к лабораторным работам по дисциплине “
Методические указания к лабораторным работам по дисциплине “Нормативные документы и должностные инструкции” / А. Г. Куприянов, А....

Методические указания к лабораторным работам по дисциплине «Операционные системы» iconО. Р. Никитин Специализация по теме диссертации Методические указания...
Методические указания к лабораторным работам предназначены для бакалавров направления 210400 «Радиотехника» и специальности 210600...

Методические указания к лабораторным работам по дисциплине «Операционные системы» iconМетодическая разработка и указания к лабораторным работам по дисциплине...
Федеральное государственное образовательное учреждение высшего профессионального образования

Методические указания к лабораторным работам по дисциплине «Операционные системы» iconМетодические указания к лабораторным работам по дисциплине «микроэлектронные устройства»
Горохов А. В, Пичугина Л. П. Методические указания к лабораторным работам по дисциплине «Микроэлектронные устройства». – М.: Ргу...

Методические указания к лабораторным работам по дисциплине «Операционные системы» iconМетодические указания к лабораторным работам «спектрофотометрический анализ»
Методические указания к лабораторным работам «спектрофотометрический анализ» по спецкурсу «оптические методы анализа» для студентов...

Методические указания к лабораторным работам по дисциплине «Операционные системы» iconМетодические указания к лабораторным работам по курсу «Новые разделы информатики»
Данные методические указания «Мультимедиа технологии»к лабораторным работам могут быть полезны студентам и преподавателям смежных...

Методические указания к лабораторным работам по дисциплине «Операционные системы» iconМетодические указания к лабораторным работам по курсу «Новые разделы информатики»
Данные методические указания «Мультимедиа технологии»к лабораторным работам могут быть полезны студентам и преподавателям смежных...

Методические указания к лабораторным работам по дисциплине «Операционные системы» iconМетодические указания по дисциплине пд. 02 Химия для выполнения лабораторных...
Методические указания и задания к лабораторно-практическим занятиям для студентов специальности 35. 02. 05 Агрономия по дисциплине...

Методические указания к лабораторным работам по дисциплине «Операционные системы» iconМетодические указания к лабораторным работам по дисциплине «Физико-химические методы анализа»
Методические указания составили: доценты: С. А. Соколова, О. В. Перегончая, Л. Ф. Науменко, А. К. Решетникова, О. В. Дьяконова,,...

Методические указания к лабораторным работам по дисциплине «Операционные системы» iconМетодические указания к лабораторным работам по дисциплине «Технологии...
Лабораторная работа 2 Составление календарного плана разработки портала вуза 16

Методические указания к лабораторным работам по дисциплине «Операционные системы» iconМетодические указания по проведению лабораторных работ по дисциплине «Информатика»
Методические указания по проведению лабораторных работ предназначены для студентов гоапоу «Липецкий металлургический колледж» технических...

Методические указания к лабораторным работам по дисциплине «Операционные системы» iconМетодические указания по дисциплине оп. 06 Основы аналитической химии...
Методические указания и задания к лабораторно-практическим и самостоятельным занятиям по оп. 06 Основы аналитической химии для студентов...

Методические указания к лабораторным работам по дисциплине «Операционные системы» iconМетодические указания к выполнению лабораторных работ Омск 2006
П. С. Гладкий, Е. А. Костюшина, М. Е. Соколов, Проектирование баз данных: Методические указания к лабораторным работам. Омск: Издательство:...

Методические указания к лабораторным работам по дисциплине «Операционные системы» iconУчебно-методические указания для выполнения лабораторных работ по...
Автор: Ченская Ирина Борисовна, преподаватель специальных дисциплин огапоу «Белгородский индустриальный колледж»

Методические указания к лабораторным работам по дисциплине «Операционные системы» iconМетодические указания к лабораторным занятиям по дисциплине оп. 06 «Электрорадиоизмерения»
Методические указания составлены в соответствии с учебным планом и рабочей программой оп. 05 «Электрорадиоизмерения» по специальности...


Руководство, инструкция по применению






При копировании материала укажите ссылку © 2018
контакты
rykovodstvo.ru
Поиск