Semafory w systemie Unix

Podobne dokumenty
Pamięć współdzielona

IPC: Kolejki komunikatów

Temat zajęć: Mechanizmy IPC: kolejki komunikatów.

Mechanizmy z grupy IPC

Komunikacja asynchroniczna w modelu rozproszonym

Programowanie Współbieżne. Komunikacja między procesowa IPC

Instytut Teleinformatyki

Mechanizmy z grupy IPC

problemu producenta i konsumenta z ograniczonym buforem cyklicznym. Wszystkie funkcje dotyczace

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)

Krótki kurs programowania współbieżnego (2)

Temat zajęć: Mechanizmy IPC: semafory

1. Utwórz blok pamięci współdzielonej korzystając z poniższego kodu:

i edycji danych w tabeli, - sortowania i filtrowania tabeli lub formularza, tworzenia, modyfikacji i urucha-

Ustawienia :JO GZSRGVWDZRZHLQIRUPDFMH

Działanie systemu operacyjnego

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Wprowadzenie do programowania współbieżnego

Działanie systemu operacyjnego

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Działanie systemu operacyjnego

J. Ułasiewicz Programowanie aplikacji współbieżnych 1

Programowanie równoległe w POSIX API. PRiR, wykład 3


- tworzenia i edycji niewielkich dokumentów, gotowych do rozpowszechniania, napisanego tekstu przed ostatecznym wydrukowaniem.

- wprowadzania, edycji i formatowania tekstu w prezentacjach oraz stosowania

Systemy operacyjne. Zajęcia 11. Monitory

Kolejki FIFO (łącza nazwane)

3URJUDPRZDQLHZVSyáELH*QHZVWS

Aktualizacja map TT Europa. Aktualizacja map TT Europa w programie mapfactor Navigator w urządzeniach SmartGPS - instrukcja

Złośliwe oprogramowanie Sandrorat (podszywające się pod oprogramowanie Kaspersky) na platformę Android WYNIKI ANALIZY

Działanie systemu operacyjnego

ZiMSK. VLAN, trunk, intervlan-routing 1

5. Model komunikujących się procesów, komunikaty

Systemy operacyjne III

Zapis adresu. Adres IPv6 zapisujemy w postaci szesnastkowej, w ośmiu blokach 2-bajtowych Przykład:

Semafor ustaw_semafor(key_t nazwa, int start); Semafor usun_semafor(semafor sem); void signal(semafor sem); void wait(semafor sem);

Simulator of Operating System

Obliczenia równoległe i rozproszone w JAVIE. Michał Kozłowski 30 listopada 2003

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2009/2010

2 Implementacja w systemie Linux 2.4

ezykach wysokiego poziomu (Dijkstra, 1965). semaphore semaphore S; Operacje na semaforze:

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.



Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Programowanie Urządzeń Mobilnych. Część II: Android. Wykład 2

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.

Semafory. // G - globalna dla wszystkich. // Wada - aktywne oczekiwanie Test_and_Set(Li); exit when Li = 0; end loop sekcja_krytyczna(i); G := 0;

IdyllaOS. Prosty, alternatywny system operacyjny. Autor: Grzegorz Gliński. Kontakt:

SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią

V ]D RV Z /XEÃ]DZLHV]HQLHPÃ ]Ã]DZLHV]HQLHPÃ SQHXPDW\F]Q\PÃ. 'RSXV]F]DOQDÃÃ PDVDÃFDãNRZLWDÃ. UÍZQRZDëQHÃ PQLHMÃ

System operacyjny MACH

1. Etapy rozwoju systemów komputerowych

Biuletyn techniczny. CDN OPT!MA 12.0 Drukarki fiskalne w usługach terminalowych. Copyright 2007 COMARCH SA

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Program wykładów. Strona WWW przedmiotu: Program ćwiczeń projektowych

IPv6. Wprowadzenie. IPv6 w systemie Linux. Zadania Pytania. budowa i zapis adresu, typy adresów tunelowanie IPv6 w IPv4

System operacyjny UNIX system plików. mgr Michał Popławski, WFAiIS

Funkcje jadra systemu operacyjnego UNIX

Opis protokołu RPC. Grzegorz Maj nr indeksu:

Powłoka, redyrekcja, potok

Rozproszona pamiêæ dzielona - 1


Funkcje jadra systemu operacyjnego UNIX

Import limitów urlopowych / nowy rok

Ã1XPHUÃ,GHQW\ILNDFMLÃ3RGDWNRZHMÃVNáDGDM FHJRÃLQIRUPDFM ÃÃ. Ã5RG]DMÃSRGPLRWXÃRSRGDWNRZDQLDÃÃ]D]QDF]\üÃZáD FLZ\ÃNZDGUDWÃ

Windows Server 2008 Standard Str. 1 Ćwiczenia. Opr. JK. I. Instalowanie serwera FTP w Windows Server 2008 (zrzuty ekranowe z maszyny wirtualnej)

Klient-Serwer Komunikacja przy pomocy gniazd

STEVI 470 / ANSI

Instrukcja podłączenia bramki IP 1R+L oraz IP 2R+L w trybie serwisowym za pomocą usługi telnet.

Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.

Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX

Podręcznik użytkownika. Satellite

KOLEJKI KOMUNIKATÓW IPC

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX

Biuletyn techniczny. Drukarki fiskalne w usługach terminalowych. Comarch OPT!MA Copyright 2007 COMARCH SA

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Podstawowe wiadomości o systemach plików.

ROZPROSZONE SYSTEMY OPERACYJNE. Niezawodne usługi w rozwiązaniach SSI dokumentacja projektu. Karol Ostrowski 16 czerwca 2005

TRX API opis funkcji interfejsu

Informatyka. informatyka i nauki komputerowe (computer science)

Instrukcja postępowania użytkownika programów LiderSim i ProLider w związku z wprowadzeniem od r. nowych stawek VAT.

MBUM #2. Zarządzanie kopiami konfiguracji RouterOS. Jacek Rokicki

SYSTEMY OPERACYJNE WYKLAD 6 - wątki


SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

System plików. Warstwowy model systemu plików

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

STRUKTURA EGZAMINU MATURALNEGO Z JĘZYKA ANGIELSKIEGO

Mechanizmy pracy równoległej. Jarosław Kuchta

E-I-0006-s3. Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Rok szkolny 2015/16 Sylwester Gieszczyk. Wymagania edukacyjne w technikum

Rejestr HKEY_LOCAL_MACHINE

Database Connectivity

Transkrypt:

Semafory w systemie Unix Pakiet IPC wprowadzony w Uniksie Systemu V UR]SRZV]HFKQLáVL ZNROHMQ\FKZDULDQWDFK8QLNVDWDN HZ wydaniach BSD) 8GRVW SQLDWU]\PHFKDQL]P\: kolejki komunikatów semafory VHJPHQW\SDPL FLG]LHORQHM 3RM FLDZVSyOQHGODZV]\VWNLFKPHFKDQL]PyZ,3& klucz ±Z\Uy QLNLQVWDQFML]DVREX identyfikator ZHZQ WU]Q\LGHQW\ILNDWRU]DVREXZV\VWHPLH twórca identyfikator oraz identyfikator grupowy procesu, NWyU\XWZRU]\á]DVyE ZáD FLFLHO±ZáD FLFLHO]DVREX3RF] WNRZRWZyUFDDOHPR H ]RVWDü]PLHQLRQ\SU]H]SURFHV\WZyUF\DNWXDOQHJRZáD FLFLHOD nadzorcy SUDZDGRVW SX prawa odczytu/zapisu/wykonania jak w systemie plików )XQNFMHV\VWHPRZHGRREVáXJL]DVREyZ,3& get ±WZRU]\LQVWDQFM ]DVREX,3&OXESU]HND]XMHZZ\QLNX LGHQW\ILNDWRUMX LVWQLHM FHJR]DVREX,3& ctl±ixqnfmhvwhuxm FH]DVREDPL,3&PLQXVXZDQLHLQVWDQFML funkcje specyficzne dla konkretnego mechanizmu Semafory w systemie UNIX str. 1

Uwagi:,QVWDQFMDND GHJRPHFKDQL]PX,3&MHVW]DVREHPV\VWHPRZ\P WZRU]\M V\VWHPRSHUDF\MQ\QD]OHFHQLHSURFHVyZX \WNRZQLND,QVWDQFMH]DVREyZSRV]F]HJyOQ\FKW\SyZV SU]HFKRZ\ZDQHZ statycznych tablicach systemowych.oxf]váx \GRRNUH OHQLDLQVWDQFML]DVREX,QVWDQFMH]DVREX RNUH ORQHJRPHFKDQL]PXPDM XQLNDWRZHNOXF]H.OXF]Z\NRU]\VWXMHVL MHG\QLHSU]\SLHUZV]\PRGZRáDQLXGR zasobu w procesie (w funkcji getsrgf]dvwhjrrgzrádqldmhvw RQSU]HNV]WDáFDQ\QDLGHQW\ILNDWRUNWyU\MHVWDUJXPHQWHP SR]RVWDá\FKIXQNFMLPDQLSXOXM F\FK]DVREHP 1DOH \GEDüRXVXZDQLHQLHSRWU]HEQ\FK]DVREyZV\VWHPRZ\FK (funkcje systemowe ctl oraz polecenia ipcs i ipcrm z poziomu LQWHUSUHWHUDSROHFH Typowe scenariusze pracy z zasobami IPC: 1. :LHOHZVSyáSUDFXM F\FK]HVRE UyZQRU] GQ\FK QLHVSRNUHZQLRQ\FK]HVRE SURFHVyZ NRRSHUXM FHSURFHV\XVWDODM ZVSyOQ\NOXF]]DVREX ND G\]QLFKZ\NRQXMHRSHUDFM getsrgdm FXVWDORQ\NOXF] RUD]RSFM IPC_CREAT SURFHV\NRU]\VWDM ]]DVREX SURFHVNWyU\NR F]\VL MDNRRVWDWQLZ\NRQXMHRSHUDFM ctl z RSFM IPC_RMIDXVXZDM FLQVWDQFM ]DVREX Semafory w systemie UNIX str. 2

2. Jak 1., ale proces WZRU] F\zasób wykonuje dodatkowe F]\QQR FLLQLFMXM FH NRRSHUXM FHSURFHV\XVWDODM ZVSyOQ\NOXF]]DVREX ND G\]QLFKZ\NRQXMHRSHUDFM get SRGDM FXVWDORQ\NOXF] RUD]NRPELQDFM RSFMLIPC_CREAT IPC_EXCL W\ONRMHGQHPXSURFHVRZLXGDMHVL Z\NRQDüW RSHUDFM ± Z\NRQXMHRQGRGDWNRZHF]\QQR FLLQLFMXM FH]DVyE SURFHV\NWyU\PQLHXGDáRVL Z\NRQDüRSHUDFMLget SRQDZLDM M W\PUD]HPEH] DGQ\FKRSFML SURFHV\NRU]\VWDM ]]DVREX MHGHQ]SURFHVyZXVXZDLQVWDQFM ]DVREX 3. 3URFHV\NRU]\VWDM FH]]DVREXV WZRU]RQHSU]H]ZVSyOQ\ proces macierzysty: RMFLHFWZRU]\QRZ LQVWDQFM ]DVREX]DSRPRF RSHUDFMLget z kluczem IPC_PRIVATE LHZHQWXDOQLHZ\NRQXMHF]\QQR FL LQLFMXM FH RMFLHFWZRU]\SURFHV\SRWRPQHLF]HNDQDLFK]DNR F]HQLH SURFHV\SRWRPQHZ\NRQXM VL NRU]\VWDM F]]DVREX RMFLHFXVXZDXWZRU]RQ LQVWDQFM ]DVREX Semafory w pakiecie IPC SRMHG\QF]DLQVWDQFMD]DVREXVNáDGDVL ]WDEOLF\VHPDIRUyZMHM UR]PLDUMHVWRNUH ODQ\MDNRDUJXPHQWRSHUDFMLsemget. ND GDRSHUDFMDQDWDEOLF\VHPDIRUyZMHVWZ\NRQ\ZDQD QLHSRG]LHOQLHLVNáDGDVL ]ZLHOXRSHUDFMLGRW\F] F\FK poszczególnych semaforów w tablicy QDSRMHG\QF]\PVHPDIRU]HZ]HVWDZLHPR QDZ\NRQ\ZDü RSHUDFMHVHPDIRUDXRJyOQLRQHJRGRGDWNRZRMHVWGRVW SQD RSHUDFMDZVWU]\PDQLDSURFHVXZRF]HNLZDQLXQD]DPNQL FLH semafora Semafory w systemie UNIX str. 3

RSHUDFMHPRJ E\üEORNXM FHOXEQLHEORNXM FH SURFHV\ZVWU]\PDQHRF]HNXM ZNROHMFH Semantyka wielokrotnych operacji na semaforze ]DZV]HZ\NRQXMHVL ZV]\VWNLHRNUH ORQHRSHUDFMHDOERQLF system po koleidqdol]xmhpr OLZR üz\nrqdqld poszczególnych operacji: MH OLRSHUDFM GDVL Z\NRQDüSU]HFKRG]LGRDQDOL]\QDVW SQHM operacji MH OLRSHUDFMDSRZRGXMHZVWU]\PDQLHSURFHVXSURFHV]RVWDMH ]DEORNRZDQ\QLHZ\NRQDZV]\ DGQHMRSHUDFML MH OLRSHUDFMDMHVWQLHEORNXM FDLQLHPR HE\üZ\NRQDQD QDW\FKPLDVWSURFHVRWU]\PXMHLQIRUPDFM REá G]LHQLH Z\NRQDZV]\ DGQHMRSHUDFML MH OLZV]\VWNLHRSHUDFMHPR QDZ\NRQDüZ\NRQXMHVL MHL sterowanie powraca do procesu Semantyka operacji podnoszenia semafora: SRZ\NRQDQLXRSHUDFMLSRGQLHVLHQLDVHPDIRUDVSUDZG]DVL F]\ V SURFHV\RF]HNXM FHQDW\PVHPDIRU]H MH OLWDNWRV\VWHPSU]HJO GDNROHMN SURFHVyZZVWU]\PDQ\FK VSUDZG]DM FF]\ZVWU]\PDQ\SURFHVPR QDREXG]Lü MH OLWDNWRVSUDZG]DVL F]\REXG]RQ\SURFHVQLH]RVWDQLH ZVWU]\PDQ\QDLQQHMRSHUDFMLDQDOL]XM Fwszystkie od SRF] WNX) QDVW SQLHZDUWR üvhpdirudmhvwrgsrzlhgqlrprg\ilnrzdqdl UR]SRF]\QDVL VSUDZG]HQLHF]\PR QDREXG]LüNROHMQ\] X SLRQ\FKSURFHVyZ PR OLZH]DJáRG]HQLH Semafory w systemie UNIX str. 4

Notacja: Operacje na pojedynczym semaforze P(6QRSXV]F]HQLH6RZDUWR üq V(6QSRGQLHVLHQLH6RZDUWR üq =6F]HNDMD 6 np(s,n) - QLHEORNXM FHRSXV]F]HQLH6RZDUWR üq nv(s,n) - QLHEORNXM FHSRGQLHVLHQLH6RZDUWR üq Operacje jednoczesne >9636=6@F]HNDMD 6 3 oraz S3 = 0 i ZWHG\6]ZL NV]RD6]PQLHMV]R [Q36=696@MH OL6 1 i S2 = 0, to zmniejsz 6RL]ZL NV]6Rwpp nic nie rób (QLHEORNXM FD 3U]\NáDG\ >9636@±]DZV]HZ\NRQDOQD6QLH]PLHQLDVL >3696@±ZVWU]\PXMHSURFHVMH OL6 ZDUWR ü6 QLH]PLHQLDVL Czytelnicy i pisarze Dodatkowe operacje na semaforach (semctl): RGF]\WDQLHZDUWR FLZVND]DQHJRVHPDIRUDOXEZV]\VWNLFK semaforów w zestawie ]PLDQDZDUWR FLZVND]DQHJRVHPDIRUDOXEZV]\VWNLFK semaforów w zestawie odczytanie ile procesów czeka na operacjach P i Z pobranie 3,'XSURFHVXNWyU\RVWDWQLRZ\NRQDáRSHUDFMHQD zestawie semaforów XVXQL FLH]HVWDZXVHPDIRUyZ pobranie informacji administracyjnych Semafory w systemie UNIX str. 5

6HJPHQW\SDPL FLG]LHORQHM±REV]DU\SDPL FLNWyUHPRJ E\ü SU]\á F]RQH jako fragmenty wirtualnej przestrzeni wirtualnej Uy Q\FKDWDN HW\FKVDP\FKSURFHVyZ P1 P2 SDPL üãg]lhorqd 7\SRZ\VFHQDULXV]NRU]\VWDQLD]VHJPHQWXSDPL FLG]LHORQHM SURFHV\WZRU] VHJPHQWSDPL FLG]LHORQHMRX]JRGQLRQ\P kluczu (shmget) ND G\]QLFKSU]\á F]DVHJPHQWSDPL FLGRVZRMHMSU]HVWU]HQL adresowej (shmat) GRVW SGRVHJPHQWXSDPL FLG]LHORQHMVSURZDG]DVL WHUD]GR EH]SR UHGQLHJR]DSLVXGRSDPL FLLRGF]\FLH]QLHM±MHVWG]L NL temu bardzo szybki JG\VHJPHQWSDPL FLQLHMHVWMX SRWU]HEQ\ND G\ proces SRZLQLHQJRRGá F]\üshmdt) jeden z procesów usuwa zasób (shmctl z IPC_RMID) Uwaga! GRVW SGRSDPL FLG]LHORQHM]D]Z\F]DMZ\PDJDV\QFKURQL]DFML QDOH \]H]ZROLüV\VWHPRZLRSHUDF\MQHPXQDZ\EyUDGUHVXSRG NWyU\PVHJPHQWSDPL FLG]LHORQHME G]LHSRGSL W\ZZLUWXDOQHM przestrzeni adresowej procesu Semafory w systemie UNIX str. 6