Лекции по Операционным Системам. Ввиде html

Вид материалаЛекции
38. Именованные каналы
Подобный материал:
1   2   3   4   5

mknod filename p;

p — тип файла.

Работа с поименованным каналом производится также как с обычным файлом

(теми же системными вызовами), за исключением того, что реально на диске информация не сохраняется, а передаётся от процесса, вызвавшего запись, процессу, вызвавшему чтение.

В IPC содержится три пакета взаимодействия:

  1.        механизм сообщений;
  2.        механизм распределения памяти;
  3.        семафоры.

  1.      Механизм сообщений позволяет принимать и посылать потоки сформированных данных.

За передачу сообщений отвечают четыре системных вызова:

msg get — возвращает дескриптор сообщения;

msg clt — устанавливает параметры сообщений;

msg cnt — передаёт сообщение;

msg rcv — принимает сообщение.
  1.        Механизм распределения памяти позволяет совместно использовать отдельные части виртуального адресного пространства.

shm get — создаёт новую область;

shm at — логически присоединяет;

shm dt — логически отсоединяет;

shm ctl — работает с параметрами области.
  1.        Семафоры синхронизацию выполнения параллельных процессов. В лю.бой момент времени над семафором возможна только одна реализация.

sem get — создание набора семафоров;

sem ctl — управление этим набором;

sem op — работа со значениями


38. Именованные каналы


Файл имеющий своё место в Файловой системой.


mknode <имя файла> P1

тип файла(pipe)

c-символьное устройство

b-блочные устройства

Работа как с обыкновенными файлами.

Пример:


main()

{int fd=open(“naca”,O_WRONLY);

write(fd,”Hi”,3);

close(fd);

}


$echo “Y0”>naca

$cat naca

main()

{ char buf[16];

int fd=open(“naca”,O_ROONRY);

need(fd,buf,3);

printf(“%s”,buf);

close(fd);

}




IPC


Более гибкое взаимодействие процессов, но в рамках одной системы.


Части пакета IPC:

1. Обмен сообщениями

2. Взаимодействие через общую память

3. Семафоры


1. msgget – получение дескриптора сообщения

msgctl – настройка параметров сообщения

msgsnd – передача

msgrev – приём


2. Позволяет совместно использовать отдельные части виртуального адресного пространства.

shmget – создаёт новую область

shmat – логически присоединяет

shmdt – отсоединяет

shmctl – настраивает





3.


Семафоры используются для синхронизации выполнения параллельных процессов.





Взаимная блокировка процесса.


i=2




i:=i+1 i:=3 i:=i+1


Семафорам необходима поддержка со стороны «железа».


P- «-1»

V- «+1»


Sockets

Взаимодействие через сеть по протоколам TCP, UDP.


39. Элементы распределённых систем


1. Повышение производительности.

2. Повышение надёжности

3. Для решения естественно- параллельных систем.


Архитектуры организации многопроцессорных ЭВМ

  • Шинная


CPU2


CPU3


ОЗУ


CPU1





- master-slave

Один процессор работает в режиме ядра, обращая прерывания и выполняя системные функции.

Остальные работают в режиме пользователей(прикладные программы).

«-» не масштабируема(большое количество запросов на master – не успевает обрабатывать ).
  • симметричная – все процессоры равны.


«-» производительность ограничивается пропускной способностью шины.

CPU1

CPU2


CPU3


ОЗУ



КЭШ

КЭШ


КЭШ




Проблема когерентности

  • г
    4CPU

    шина

    ОЗУ

    Средства коммуникации

    иперкубическое соединение

4




8 16






  • транспьютер


  • кластер

локальная сеть, выполняемая одну задачу




разделение вычислений на уровни: а) ОС

б) приложений


MPI (multi-programming interface)

Взаимодействие комплектующих процессов на разных компьютерах.

Пример:

main(argc,argv)

int argc, char ** argv;

{int me, size;

int SOME_TAG=0;

MPI_Status status;

MPI_Init (&argc, &argv) ;

MPI_Comm_rank(MPI_COMM_world, &me); //номер процесса

MPI_Comm_size (MPI_COMM_world, &size); //число вычисленных узлов

if (me%2==0) MPI_SEND(…, me+1, SOME_TAG,MPI_COMM_WORLD)

else

MPI_Recv(…,me-1, me+1, SOME_TAG,MPI_COMM_WORL,& status)

MPI_Find();

}