SEMOP(2) PodrÄcznik programisty Linuksa SEMOP(2)
|
|
- Agata Wróbel
- 7 lat temu
- Przeglądów:
Transkrypt
1 NAZWA semop, semtimedop operacje na semaforach Systemu V SKÅADNIA #include <sys/types.h> #include <sys/ipc.h> #include <sys/sem.h> int semop(int semid, struct sembuf *sops, size_t nsops); int semtimedop(int semid, struct sembuf *sops, size_t nsops, const struct timespec *timeout); Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)): OPIS semtimedop(): _GNU_SOURCE Zkażdym semaforem w zestawie semaforã³w Systemu V sä skojarzone nastäpujäce wartoåci: unsigned short semval; /* wartoåä semafora */ unsigned short semzcnt; /* liczba oczekujäcych na zero */ unsigned short semncnt; /* liczba oczekujäcych na zwiäkszenie */ pid_t sempid; /* PID procesu, ktã³ry jako ostatni zmodyfikow aå wartoåä semafora */ semop() wykonuje operacje na wybranych semaforach z zestawu wskazywanego przez semid. Każdy z nsops elementã³w tablicy wskazywanej przez parametr sops jest strukturä okreålajäcä operacjä, ktã³ra ma byä wykonana na pojedynczym semaforze. Struktura struct sembuf zawiera nastäpujäce pola: unsigned short sem_num; /* numer semafora */ short sem_op; /* operacja na semaforze */ short sem_flg; /* znaczniki operacji */ W sem_flg mogä zostaä ustawione znaczniki operacji: IPC_NOWAIT i SEM_UNDO. JeÅli podano znaczniki SEM_UNDO, to operacja zostanie automatycznie cofniäta w chwili, gdy proces zakoåczy dziaåanie. Zestaw operacji zawartych w sops jest wykonywany w kolejnoåci elementã³w tablicy oraz atomowo, co oznacza, że operacje sä wykonywane albo w caåoåci, albo wcale. Zachowanie wywoåania systemowego w sytuacji, gdy nie wszystkie operacje mogä byä wykonane natychmiast, zaleå¼y od ustawienia znacznika IPC_NOWAIT wposzczegã³lnych polach sem_flg, jak to opisano poniå¼ej. Każda z operacji jest wykonywana na semaforze o numerze sem_num w zestawie, przy czym pierwszy semafor ma numer 0. SÄ trzy rodzaje operacji rozrã³å¼niane na podstawie wartoåci sem_op. JeÅli sem_op jest liczbä dodatniä, to wartoåä semafora (semval) zostanie zwiäkszona o tä liczbä. Ponadto jeåli przekazano znacznik SEM_UNDO, to system odejmuje wartoåä (semop) od wartoåci dopasowania (semadj) tego semafora. Operacja ta zawsze moå¼e byä wykonana nigdy nie spowoduje wstrzymania wätku. Proces wywoåujäcy funkcjä musi mieä prawo do modyfikacji zestawu semaforã³w. JeÅli sem_op jest rã³wne 0, proces musi mieä prawo do odczytu zestawu semaforã³w. Jest to operacja "oczekiwania na zero" (wait for zero): gdy semval ma wartoåä 0, operacja moå¼e byä kontynuowana bezzwåocznie. W przeciwnym razie, jeåli w sem_flg przekazany zostaå znacznik IPC_NOWAIT, wã³wczas semop() zgåosi båäd, zaå zmienna errno przyjmie wartoåä EAGAIN (i żadna z operacji z sops nie zostanie wykonana). Jeżeli proces zostanie wstrzymany przez system, wã³wczas wartoåä semzcnt (liczby wätkã³w oczekujäcych na osiägniäcie przez semafor wartoåci zero) zostanie zwiäkszona o 1, a wätek bädzie zawieszony aå¼ do chwili, gdy speåniony zostanie jeden z poniå¼szych warunkã³w: Linux
2 semval osiägnie wartoåä 0; wã³wczas wartoåä pola semzcnt zostanie zmniejszona o 1. Zestaw semaforã³w zostanie usuniäty: semop() siä nie powiedzie i przypisze zmiennej errno wartoåä EIDRM. WÄtek wywoåujäcy funkcjä przechwyci sygnaå: wartoåä semzcnt zostanie zmniejszona, a semop() zakoåczy siä niepowodzeniem i przypisze zmiennej errno wartoåä EINTR. JeÅli sem_op ma wartoåä mniejszä od 0, to proces musi mieä prawo do modyfikacji zestawu semaforã³w. JeÅli wã³wczas wartoåä semafora semval jest wiäksza lub rã³wna wartoåci bezwzglädnej sem_op, tooperacja moå¼e byä kontynuowana bezzwåocznie: wartoåä semafora semval zostanie zmniejszona o wartoåä bezwzglädnä sem_op. Ponadto, jeåli przekazano znacznik SEM_UNDO, tosystem dodaje caåkowitä wartoåä sem_op do wartoåci dopasowania (semadj) tego semafora. JeÅli wartoåä bezwzglädna sem_op jest wiäksza niå¼ semval, awsem_flg przekazano znacznik IPC_NOWAIT, to semop() zakoåczy siä niepomyålnie, przypisujäc zmiennej errno wartoåä EAGAIN (i żadna z operacji z sops nie zostanie wykonana). W przeciwnym wypadku semncnt (licznik wätkã³w oczekujäcych na zwiäkszenie wartoåci tego semafora) zostanie zwiäkszony o 1, a wätek nie zostanie wznowiony aå¼ do chwili wystäpienia jednego z nastäpujäcych zdarzeå: semval staje siä wiäksza lub rã³wna wartoåci caåkowitej sem_op: operacja przebiega teraz zgodnie z opisem powyå¼ej. Zestaw zostanie usuniäty z systemu: semop() zwrã³ci båäd i ustawi zmiennä errno na wartoåä EIDRM. WÄtek wywoåujäcy funkcjä przechwyci sygnaå: wartoåä semncnt zostanie zmniejszona, a semop() zakoåczy siä niepowodzeniem i przypisze zmiennej errno wartoåä EINTR. JeÅli operacja zostanie zakoåczona pomyålnie, to wartoåci sempid kaå¼dego z semaforã³w wyszczegã³lnionych w tablicy wskazywanej przez sops przypisany zostanie identyfikator procesu (PID) wywoåujäcego. Ponadto polu sem_otime przypisany zostanie bieå¼äcy czas. semtimedop() semtimedop() zachowuje siä tak samo jak semop(), poza tym że w tych przypadkach, gdy wätek wywoåujäcy by spaå, czas trwania spania jest ograniczony przez czas okreålony w strukturze timespec, ktã³rej adres jest przekazywany w parametrze timeout (interwaå zostanie zaokräglony w gã³rä do dokåadnoåci zegara, a wystäpowanie opã³åºnienia planisty jädra oznacza, że ten interwaå moå¼e byä nieznacznie przekroczony). JeÅli osiägniäto okreålony limit czasu, to semtimedop() zwraca båäd, ustawiajäc errno na EAGAIN (i żadna z operacji w sops nie jest wykonywana). Jeżeli parametr timeout jest NULL, to semtimedop() zachowuje siä dokåadnie tak samo jak semop(). ProszÄ zauwaå¼yä, że jeåli semtimeop() zostanie przerwane przez sygnaå, co spowoduje niepomyålne zakoåczenie wywoåania z båädem EINTR, zawartoåä timeout pozostanie bez zmian. WART OÅÄ ZWRACANA semop() i semtimedop zwracajä 0, jeåli zakoåczä siä pomyålnie. W przeciwnym wypadku zwracajä 1 i przypisujä zmiennej errno wartoåä wskazujäcä na rodzaj båädu. BÅÄDY W przypadku wystäpienia båädu, zmiennej errno przypisywana jest jedna z nastäpujäcych wartoåci: E2BIG WartoÅÄ nsops przekracza SEMOPM, maksymalnä liczbä operacji wykonywanych w jednym wywoåaniu. EACCES Proces wywoåujäcy nie ma wystarczajäcych uprawnieå do wykonania podanych operacji na semaforach oraz nie ma ustawionego atrybutu CAP_IPC_OWNER. EAGAIN Operacja opatrzona znacznikiem IPC_NOWAIT w sem_flg nie moå¼e byä natychmiast wykonana lub upåynäå limit czasu okreålony wparametrze timeout. Linux
3 EFAULT Adres wskazywany przez parametr sops lub timeout jest niedostäpny. EFBIG Numer semafora sem_num, do ktã³rego odnosi siä jedna z operacji, jest mniejszy od 0 albo wiäkszy lub rã³wny liczbie semaforã³w w zestawie. EIDRM Zestaw semaforã³w zostaå usuniäty. EINTR WÄtek przechwyciå sygnaå podczas oczekiwania na odebranie komunikatu; patrz signal(7). EINVAL Zestaw semaforã³w nie istnieje lub wartoåä semid jest mniejsza od zera, lub wartoåä nsops nie jest liczbä dodatniä. ENOMEM Znacznik SEM_UNDO zostaå ustawiony wsem_flg dla pewnej operacji, a w systemie nie ma wystarczajäcej iloåci pamiäci na utworzenie nowej struktury do przechowywania informacji ozmianach. ERANGE Dla pewnej operacji wartoåä sem_op+semval przekroczyåa SEMVMX, czyli zaleå¼nä od implementacji maksymalnä wartoåä semval. WERSJE semtimedop() po raz pierwszy pojawiåo siä w Linuksie , ale zostaåo przeniesione (backport) do jädra Biblioteka glibc obsåuguje semtimedop() od wersji ZGODNE Z POSIX , POSIX , SVr4. UWAGI DoÅÄczenie <sys/types.h> i <sys/ipc.h> nie jest wymagane na Linuksie ani przez żadnÄ z wersji POSIX. Jednak niektã³re stare implementacje wymagajä doåäczenia tych plikã³w nagåã³wkowych, SVID rã³wnieå¼ dokumentuje ich doåäczenie. Aplikacje ktã³re majä byä przenoåne na tego typu stare systemy mogä wymagaä doåäczenia omawianych plikã³w nagåã³wkowych. Struktury sem_undo nie sä dziedziczone przez dzieci tworzone za pomocä fork(2), ale sä dziedziczone przez wywoåanie systemowe execve(2). semop() nie jest nigdy automatycznie uruchamiana ponownie po przerwaniu przez funkcjä obsåugi sygnaåu, niezaleå¼nie od ustawieå znacznika SA_RESTART uå¼ywanego podczas tworzenia funkcji obsåugi sygnaåu. WartoÅÄ dopasowania semafora (semadj) jest przypisana do procesu i semafora i jest sumä wszystkich operacji na semaforze z flagä SEM_UNDO, ze znakiem przeciwnym. Każdy proces ma listä wartoåci semadj po jednej dla kaå¼dego semafora na ktã³rej operuje za pomocä SEM_UNDO. Gdy proces siä koåczy wszystkie jego wartoåci semadj przypisane do poszczegã³lnych semaforã³w sä do nich dodawane, co powoduje przywrã³cenie wartoåci semafora sprzed dziaåania procesu (zob. jednak na BÅÄDY). Gdy wartoåä semafora jest ustawiane bezpoårednio za pomocä żÄdaÅ SET- VAL lub SETALL do semctl(2), to odpowiadajäce wartoåci semadj we wszystkich procesach sä czyszczone. Flaga CLONE_SYSVSEM clone(2) pozwala to dzielenie listy semadj przez wiäcej niå¼ jeden proces, wiäcej szczegã³åã³w w podräczniku clone(2). WartoÅci semval, sempid, semzcnt i semnct dla semafora moå¼na odczytaä za pomocä odpowiednich wywoåaå semctl(2). Limity semaforã³w WywoÅania semop() dotyczä nastäpujäce ograniczenia zasobã³w zwiäzanych z zestawami semaforã³w: SEMOPM Maksymalna liczba dozwolonych operacji na jedno wywoåanie semop(). Przed Linuksem 3.19 domyålna wartoåä tego limitu wynosiåa 32. Od Linuksa 3.19 jest to 500. Pod Linux
4 Linuksem, limit ten moå¼na odczytaä i zmodyfikow aä w trzecim polu pliku /proc/sys/kernel/sem. Uwaga: limit ten nie powinien wynosiä ponad 1000, poniewaå¼ istnieje ryzyko, że semop(2) nie powiedzie siä z powodu fragmentacji pamiäci jädra przy przydzielaniu pamiäci dla kopii tablicy sops. SEMVMX Maksymalna dozwolona wartoåä semval: zaleå¼y od implementacji (32767). Implementacja w systemie Linux nie nakåada wewnätrznych ograniczeå na zmianä wartoåci semafora podczas zakoåczenia procesu (SEMAEM), na ogã³lnosystemowä maksymalnä liczbä struktur przechowujäcych informacje o zmianach stanu semaforã³w (SEMMNU), ani na maksymalnä dla procesu liczbä struktur przechowujäcych informacje o zmianach stanu semaforã³w. USTERKI Gdy proces koåczy dziaåanie, zestaw skojarzonych z nim struktur semadj jest wykorzystywany do cofniäcia efektã³w wszystkich operacji na semaforach, ktã³re ten proces wykonaå z ustawionym znacznikiem SEM_UNDO. Wprowadza to trudnoåä: jeå¼eli jedna (lub wiäcej) spoårã³d tych zmian semaforã³w spowodowaåby prã³bä zmniejszenia wartoåci semafora poniå¼ej zera, to co implementacja powinna uczyniä? Jednym z moå¼liwych podejåä do tego zadadnienia mogåo by byä zablokow anie do chwili, gdy przeprowadzenie wszystkich zmian semaforã³w bädzie moå¼liwe. Jest to jednakå¼e niepoå¼ädane, gdyå¼ spowodowaåoby wymuszenie zablokow ania zakoåczenia procesu na dowolnie dåugi okres. InnÄ moå¼liwoåciä jest zignorowanie wszystkich takich zmian semaforã³w (nieco analogiczne do niepomyålnego zakoåczenia, gdy dla operacji na semaforze podany jest znacznik IPC_NOWAIT). Linux przyjäå trzecie rozwiäzanie: zmniejszenie wartoåci semafora na tyle, na ile jest to moå¼liwe (tzn. do zera) i umoå¼liwienie natychmiastowej kontynuacji koåczenia dziaåania procesu. JÄdra 2.6.x, gdzie x <= 10, zawierajä båäd, ktã³ry w pewnych okolicznoåciach spowoduje, że wätek czekajäcy na zmniejszenie wartoåci semafora do zera nie zostanie obudzony, gdy ta wartoåä rzeczywiåcie osiägnie zero. BÅÄd zostaå poprawiony wjädrze PRZYKÅAD NastÄpujÄcy fragment kodu uå¼ywa semop() do atomowego oczekiwania na to, by wartoåä semafora 0 doszåa do zera. NastÄpnie wartoåä semafora jest zwiäkszana o jeden. struct sembuf sops[2]; int semid; /* PominiÄto kod ustawiajäcy semid */ sops[0].sem_num = 0; /* DziaÅaj na semaforze 0 */ sops[0].sem_op = 0; /* Czekaj na wartoåä rã³wnä 0 */ sops[0].sem_flg = 0; sops[1].sem_num = 0; /* DziaÅaj na semaforze 0 */ sops[1].sem_op = 1; /* ZwiÄksz wartoåä o jeden */ sops[1].sem_flg = 0; if (semop(semid, sops, 2) == 1) { perror("semop"); exit(exit_failure); } ZOBACZTAKÅ»E clone(2), semctl(2), semget(2), sigaction(2), capabilities(7), sem_overview(7), svipc(7), time(7) OSTRONIE Angielska wersja tej strony pochodzi z wydania 4.07 projektu Linux man pages. Opis projektu, informacje dotyczäce zgåaszania båädã³w, oraz najnowszä wersjä oryginaåu moå¼na znaleåºä pod adresem pages/. Linux
5 TÅ UMACZENIE Autorami polskiego tåumaczenia niniejszej strony podräcznika man sä: RafaÅ Lewczuk (PTM) <R DOT Lewczuk AT elka DOT pw DOT edu DOT p>, Andrzej Krzysztofowicz (PTM) <ankry AT mif DOT pg DOT gda DOT pl>, Robert Luberda <robert AT debian DOT org> i MichaÅ KuÅach <michal DOT kulach AT gmail DOT com>. Polskie tåumaczenie jest czäåciä projektu manpages-pl; uwagi, pomoc, zgåaszanie båädã³w na stronie Jest zgodne z wersjä 4.07 oryginaåu. Linux
Mechanizmy z grupy IPC
Mechanizmy z grupy IPC Podobnie jak łącza, IPC (Inter Process Communication) jest grupą mechanizmów komunikacji i synchronizacji procesów działających w ramach tego samego systemu operacyjnego. W skład
Temat zajęć: Mechanizmy IPC: semafory
Temat zajęć: Mechanizmy IPC: semafory Czas realizacji zajęć: 90 min. Zakres materiału, jaki zostanie zrealizowany podczas zajęć: Zasada działania semaforów binarnych i uogólnionych, tworzenie semaforów,
Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)
Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) Ćwiczenie piąte (jedne zajęcia) Temat: Semafory Opracowanie: mgr in ż. Arkadiusz Chrobot dr in ż. Grzegorz Łukawski Wprowadzenie 1. Semafory
ezykach wysokiego poziomu (Dijkstra, 1965). semaphore semaphore S; Operacje na semaforze:
c Wies law P laczek 18 5 Semafory 5.1 Poj ecia ogólne Semafor pierwszymechanizmsynchronizacyjnywj ezykach wysokiego poziomu (Dijkstra 1965). semaphore semaphore S; Operacje na semaforze: abstrakcyjny typ
Mechanizmy z grupy IPC
Mechanizmy z grupy IPC Podobnie jak łącza, IPC (Inter Process Communication) jest grupą mechanizmów komunikacji i synchronizacji procesów działających w ramach tego samego systemu operacyjnego. W skład
Krótki kurs programowania współbieżnego (2)
Krótki kurs programowania współbieżnego (2) Procesy i sygnały w języku C (to było ostatnio) Wspólny dostęp do plików (to też) Semafory i pamięć dzielona Inne metody komunikowania Kurs systemu UNIX 1 Dzielenie
Poniższe funkcje opisane są w 2 i 3 części pomocy systemowej.
Procesy Proces (zwany też zadaniem) jest jednostką aktywną, kontrolowaną przez system operacyjny i związaną z wykonywanym programem. Proces ma przydzielone zasoby typu pamięć (segment kodu, segment danych,
Temat zajęć: Mechanizmy IPC: kolejki komunikatów.
Temat zajęć: Mechanizmy IPC: kolejki komunikatów. Czas realizacji zajęć: 90 min. Zakres materiału, jaki zostanie zrealizowany podczas zajęć: Tworzenie kolejek komunikatów, wysyłanie i odbieranie komunikatów,
Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)
Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) Ćwiczenie drugie (jedne zajęcia) Temat: Procesy i sygnały w Linuksie. Opracowanie: mgr in ż. Arkadiusz Chrobot Wprowadzenie 1. Budowa procesu
Pliki. Funkcje tworzące pliki i operujące na nich opisane są w części 2 pomocy systemowej. Tworzenie i otwieranie plików:
Pliki W celu wykonania jakiejkolwiek operacji na istniejącym pliku, plik ten musi zostać otwarty, natomiast jeśli plik jeszcze nie istnieje, to musi zostać utworzony. Plik może zostać otwarty w trybie:
Futex (Fast Userspace Mutex) Łukasz Białek
Futex (Fast Userspace Mutex) Łukasz Białek Futex informacje podstawowe Stworzony w 2002 roku przez Hubertusa Franke, Matthew Kirkwooda, Ingo Molnára i Rustiego Russella. Jest mechanizmem w Linuxie, który
problemu producenta i konsumenta z ograniczonym buforem cyklicznym. Wszystkie funkcje dotyczace
37 5 Mechanizmy IPC Mechanizmy IPC (ang. Interprocess Communication) obejmuja pamieć wspó ldzielona, semafory i kolejki komunikatów. Semafory sa raczej mechanizmem synchronizacji, niż komunikacji procesów.
Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów. Iwona Kochańska
Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów Iwona Kochańska Mechanizm synchronizacji wątków/procesów Wykorzystanie semaforów zapobiega niedozwolonemu wykonaniu
Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.
Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,
Sygnały. 7. Sygnały (2005/2006)
Sygnały Sygnał jest to informacja dla procesu, że wystąpiło jakieś zdarzenie. Sygnały mogą być wysyłane: z procesu do innego procesu (grupy procesów) z procesu do siebie samego z jądra do procesu Sygnały
Instrukcja wdrożenia zmian w programie ProLider. ( Zmiany wprowadzone w wersji 6.57.0 )
Instrukcja wdrożenia zmian w programie ProLider ( Zmiany wprowadzone w wersji 6.57.0 ) 1. Zainstalowanie programu w wersji 6.57.0 Uwaga! Program w wersji 6.57.0 wymaga bazy danych w wersji 3.33. Jeżeli
NAZWA groff front end systemu formatowania dokumentã³w groff
NAZWA groff front end systemu formatowania dokumentã³w groff SKÅADNIA groff [ abcegijklpstzcegnrsuvxz] [ d cs] [ D arg] [ f fam] [ F dir] [ I dir] [ K arg] [ L arg] [ m name] [ M dir] [ n num] [ o list]
Systemy Operacyjne 2: Wątki pthreads. dr inż. Arkadiusz Chrobot
Systemy Operacyjne 2: Wątki pthreads dr inż. Arkadiusz Chrobot 18 kwietnia 2013 1. Wprowadzenie Wątki podobnie jak procesy umożliwiają współbieżną realizację czynności w wykonywanym programie. Domyślnie
1. Procesy i współbieżność
1. Procesy i współbieżność Opracował: Sławomir Samolej Politechnika Rzeszowska, Katedra Informatyki i Automatyki, Rzeszów, 2013. 1.1. Wprowadzenie Proces to przestrzeń adresowa i pojedynczy wątek sterujący,
Smarty PHP. Leksykon kieszonkowy
IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Smarty PHP. Leksykon kieszonkowy Autor: Daniel Bargie³ ISBN: 83-246-0676-9 Format: B6, stron: 112 TWÓJ KOSZYK
Programowanie Współbieżne. Komunikacja między procesowa IPC
Programowanie Współbieżne Komunikacja między procesowa IPC IPC W systemie V są 3 rodzaje komunikacji między procesowej. kolejki komunikatów semafory pamięć wspólna IPC plik nagłówkowy funkcja systemowa
Przeplot. Synchronizacja procesów. Cel i metody synchronizacji procesów. Wątki współbieżne
Synchronizacja procesów Przeplot Przeplot wątków współbieżnych Cel i metody synchronizacji procesów Problem sekcji krytycznej Semafory Blokady 3.1 3.3 Wątki współbieżne Cel i metody synchronizacji procesów
Funkcje jadra systemu operacyjnego UNIX
Funkcje jadra systemu operacyjnego UNIX Dariusz Wawrzyniak IIPP 29 września 2009 Plan Wstęp Pliki Procesy Łacza Mechanizmy IPC Sygnały Plan Wstęp Pliki Procesy Łacza Mechanizmy IPC Sygnały Funkcje systemowe
HIER(7) PodrÄcznik programisty Linuksa HIER(7)
NAZWA hier opis systemowej hierarchii plikã³w OPIS Typowy system linuksowy zawiera, miädzy innymi, nastäpujäce katalogi: / Katalog nadrzädny. Odniego to zaczyna siä caåe drzewo. /bin /boot /dev /etc Katalog
1. Uruchom poniższy program tworzący pojedynczy wątek:
9 Wątki 1. Uruchom poniższy program tworzący pojedynczy wątek: #include #include #include void* worker(void* info) int i; for(i=0; i
Model procesu w systemie Linux. Tomasz Borzyszkowski
Model procesu w systemie Linux Tomasz Borzyszkowski Definicja procesu klasyka Definicja [M.Bach WNT95] Proces jest wykonaniem programu i składa się ze zbiorowości bajtów, które CPU interpretuje jako instrukcje
Funkcje jadra systemu operacyjnego UNIX
Funkcje jadra systemu operacyjnego UNIX Dariusz Wawrzyniak IIPP 29 września 2009 Plan 1 Wstęp 2 Pliki 3 Procesy 4 Łacza 5 Mechanizmy IPC 6 Sygnały Funkcje jadra systemu operacyjnego UNIX 29 września 2009
Laboratorium z systemów operacyjnych. System plików - funkcje systemowe. Anna Wojak
Laboratorium z systemów operacyjnych System plików - funkcje systemowe Anna Wojak 1 Zagadnienia do samodzielnego przygotowania: podstawowe polecenia linux, podstawy programowania w jezyku C, deskryptor
Boty: Paginacja Zmieniony
Boty: Paginacja Zmieniony 24.02.2009. Bot Paginacja [MOS Paging] dzieli då uå¼sze artykuå y na czä Å ci wyå wietlane na kolejnych stronach i generuje dla artykuå ów wieloczä Å ciowych spisy treå ci. UżytecznoÅ
Programowanie przy użyciu gniazdek
Programowanie przy użyciu gniazdek Gniazdo (ang. socket) pojęcie abstrakcyjne reprezentujące dwukierunkowy punkt końcowy połączenia. Dwukierunkowość oznacza możliwość wysyłania i przyjmowania danych. Wykorzystywane
Semafor ustaw_semafor(key_t nazwa, int start); Semafor usun_semafor(semafor sem); void signal(semafor sem); void wait(semafor sem);
Semafory przypomnienie semafory służą ochronie dostępu procesów do sekcji krytycznej; na semaforach dostępne są dwie operacje: podniesienie semafora signal, opuszczenie semafora wait opuszczony semafor
Systemy Operacyjne - Operacje na plikach
Systemy Operacyjne - Operacje na plikach Andrzej Stroiński Institute of Computer Science Poznań University of Technology 1 październik, 2012 Wprowadzenie do ANSI-C Pomoc systemowa man gcc man 2 write man
Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1
Typy złożone Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy podstawowe Typy całkowite: char short int long Typy zmiennopozycyjne float double Modyfikatory : unsigned, signed Typ wskaźnikowy
Simulator of Operating System
Mechanizmy stosowane w systemach operacyjnych system dydaktyczny Simulator of Operating System Sebastian Świerczyna Promotor: dr inż. Jarosław Bilski Politechnika Częstochowska Wydział Inżynierii Mechanicznej
Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C
#import "Fraction.h" #import @implementation Fraction -(Fraction*) initwithnumerator: (int) n denominator: (int) d { self = [super init]; } if ( self ) { [self setnumerator: n anddenominator:
w odróżnieniu od procesów współdzielą przestrzeń adresową mogą komunikować się za pomocą zmiennych globalnych
mechanizmy posix Wątki w odróżnieniu od procesów współdzielą przestrzeń adresową należą do tego samego użytkownika są tańsze od procesów: wystarczy pamiętać tylko wartości rejestrów, nie trzeba czyścić
/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>
Szablon programu: /* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include /* opcjonalne: deklaracja typów o rozmiarze jednego i dwóch
Wielozadaniowość w systemie Microsoft Windows
Wielozadaniowość w systemie Microsoft Windows mgr inż. Tomasz Jaworski tjaworski@kis.p.lodz.pl http://tjaworski.kis.p.lodz.pl/ Idea wielozadaniowości Proces główny Wątki Algorytm szeregowania ustala kolejność
Wykład 3. Procesy i wątki. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB
Wykład 3 Procesy i wątki Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Pojęcie procesu Program = plik wykonywalny na dysku Proces = uruchomiony i wykonywany program w pamięci
Procesy. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 9 października 2011
Procesy Systemy Operacyjne 2 laboratorium Mateusz Hołenko 9 października 2011 Plan zajęć 1 Procesy w systemie Linux proces procesy macierzyste i potomne procesy zombie i sieroty 2 Funkcje systemowe pobieranie
UNIX. mgr inż. Marcin Borkowski
UNIX Cel Przedmiotu Doskonalenie umiejętności poprawnego programowania w systemach klasy UNIX Nabycie i rozwinięcie technik pisania przenośnego kodu w C Opanowanie standardu POSIX w zakresie funkcji systemowych
1. Timery i zdarzenia
Sygnały 1 1. Timery i zdarzenia 1.1 Funkcje i programowanie timerów Jedną z najczęściej spotykanych funkcji systemu jest generowanie zdarzeń które w ustalonym czasie uruchomić mają określone akcje systemu.
Systemy Operacyjne 1 Laboratorium 2 Procesy i sygnały w Linuksie (jeden tydzień) dr inż. Arkadiusz Chrobot
Systemy Operacyjne 1 Laboratorium 2 Procesy i sygnały w Linuksie (jeden tydzień) dr inż. Arkadiusz Chrobot października 2018 Wstęp W tej instrukcji zawarte są informacje na temat tworzenia i obsługiwania
Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi.
Przykład: $ ls more Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi. Tworzenie łącza #include int pipe(int filedes[2]); Przykład: int
SYSTEMY CZASU RZECZYWISTEGO - VxWorks
WZAJEMNE WYKLUCZANIE Wiele metod. Np. wyłączanie przerwań: funkcja() //... Int blokada = intlock(); // Obszar krytyczny, któremu nie możemy przerwać intunlock(blokada); wyłączanie wywłaszczania: funkcja()
Wskaźniki w C. Anna Gogolińska
Wskaźniki w C Anna Gogolińska Zmienne Zmienną w C można traktować jako obszar w pamięci etykietowany nazwą zmiennej i zawierający jej wartość. Przykład: kod graficznie int a; a a = 3; a 3 Wskaźniki Wskaźnik
Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi)
Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) wiczenie trzecie Temat: Potoki i ł cza nazwane w Linuksie. Opracowanie: mgr in ż. Arkadiusz Chrobot Wprowadzenie 1. Komunikacja z wykorzystaniem
Obsługa sygnałów. Tomasz Borzyszkowski
Obsługa sygnałów Tomasz Borzyszkowski Wprowadzenie Zaawansowane systemy operacyjne często realizując duże zadania, wykorzystują do ich realizacji wiele współdziałających ze sobą programów/procesów. Do
PERSON Kraków 2002.11.27
PERSON Kraków 2002.11.27 SPIS TREŚCI 1 INSTALACJA...2 2 PRACA Z PROGRAMEM...3 3. ZAKOŃCZENIE PRACY...4 1 1 Instalacja Aplikacja Person pracuje w połączeniu z czytnikiem personalizacyjnym Mifare firmy ASEC
Komunikacja za pomocą potoków. Tomasz Borzyszkowski
Komunikacja za pomocą potoków Tomasz Borzyszkowski Wstęp Sygnały, omówione wcześniej, są użyteczne w sytuacjach błędnych lub innych wyjątkowych stanach programu, jednak nie nadają się do przekazywania
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
Instrukcja do ćwiczeń
Instrukcja do ćwiczeń SYSTEMY WBUDOWANE Lab. 3 Przetwornik ADC + potencjometr 1. Należy wejść na stronę Olimexu w celu znalezienia zestawu uruchomieniowego SAM7-EX256 (https://www.olimex.com/products/arm/atmel/sam7-ex256/).
z powielaniem wielu struktur danych oraz komunikacja
c Wies law P laczek 28 8 Watki 8.1 Wprowadzenie Wiele rozwiazywanych problemów można podzielić na zadania czastkowe, które daja sie wykonać niemal niezależnie. Każde z takich zadań można by powierzyć oddzielnemu
Jak napisać program obliczający pola powierzchni różnych figur płaskich?
Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy
Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.
Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Wskaźnik do pliku Dostęp do pliku: zapis, odczyt,
IPC: Kolejki komunikatów
IPC: Kolejki komunikatów Systemy Operacyjne 2 laboratorium Mateusz Hołenko 7 listopada 2011 Plan zajęć 1 Mechanizmy IPC kolejki komunikatów pamięć współdzielona semafory 2 Kolejki komunikatów kolejka komunikat
4. Funkcje. Przykłady
4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni
Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1
Wątki 1. Wątki - wprowadzenie Wątkiem nazywamy sekwencyjny przepływ sterowania w procesie, który wykonuje dany program np. odczytywanie i zapisywanie plików Program Javy jest wykonywany w obrębie jednego
Struktury Struktura polami struct struct struct struct
Struktury Struktura jest zbiorem zmiennych występujących pod wspólna nazwą. Zmienne wchodzące w skład struktury nazywane są polami lub elementami, a czasem członkami struktury. Struktury używamy, jeśli
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 12 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Obsługa łańcuchów znakowych getchar(), putchar()
C-struktury wykład. Dorota Pylak
C-struktury wykład Dorota Pylak C-struktury W języku C++, jak w każdym języku obiektowym, mamy możliwość definiowania własnych typów danych, wraz z określeniem operacji, jakie na tych danych można wykonywać.
Ingerencja w kod systemu operacyjnego (przerwania) Programowanie na niskim poziomie (instrukcje specjalne) Trudności implementacyjne (alg.
Wady mechanizmów niskopoziomowych Ingerencja w kod systemu operacyjnego (przerwania) Programowanie na niskim poziomie (instrukcje specjalne) Trudności implementacyjne (alg. Dekkera zależny od liczby synchronizowanych
Programowanie w języku C++
Programowanie w języku C++ Część siódma Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi
2 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania
2 Implementacja w systemie Linux 2.4
1 IPC IPC (InterProcess Communication) to udostępniane przez jądro systemu operacyjnego mechanizmy służące komunikacji oraz współdzieleniu zasobów i informacji pomiędzy procesami. IPC Systemu V udostępnia
Programowanie i struktury danych
Programowanie i struktury danych 1 / 19 Dynamiczne struktury danych Dynamiczną strukturą danych nazywamy taka strukturę danych, której rozmiar, a więc liczba przechowywanych w niej danych, może się dowolnie
DYNAMICZNE PRZYDZIELANIE PAMIECI
DYNAMICZNE PRZYDZIELANIE PAMIECI Pamięć komputera, dostępna dla programu, dzieli się na cztery obszary: kod programu, dane statyczne ( np. stałe i zmienne globalne programu), dane automatyczne zmienne
Przetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1
Przetwarzanie wielowątkowe przetwarzanie współbieżne Krzysztof Banaś Obliczenia równoległe 1 Problemy współbieżności wyścig (race condition) synchronizacja realizowana sprzętowo (np. komputery macierzowe)
Klasy i obiekty cz II
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy
Materiały do laboratorium MS ACCESS BASIC
Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I
Wskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17
Wskaźniki Przemysław Gawroński D-10, p. 234 Wykład 2 8 marca 2019 (Wykład 2) Wskaźniki 8 marca 2019 1 / 17 Outline 1 Wskaźniki 2 Tablice a wskaźniki 3 Dynamiczna alokacja pamięci (Wykład 2) Wskaźniki 8
Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Tablica znaków w językach C i C++ (oraz pochodnych) łańcuch znaków przechowywany jest jako
Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI
Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Wyrażenia 2 Wyrażenia w języku C są bardziej elastyczne niż wyrażenia w jakimkolwiek innym języku
IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja wielokrotna)
IBM SPSS Statistics Wersja 22 Linux - Instrukcja instalacji (licencja wielokrotna) Spis treści Instrukcja instalacji.......... 1 Wymagania systemowe........... 1 Instalowanie produktu............ 1 Praca
Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.
Laboratorium 7 Wstęp Jednym z podstawowych własności Javy jest wielowątkowość. Wiąże się to z możliwością współbieżnego wykonywania różnych operacji w ramach pojedynczej wirtualnej maszyny Javy (JVM).
Wskaźniki. Programowanie Proceduralne 1
Wskaźniki Programowanie Proceduralne 1 Adresy zmiennych Sterta 1 #include 2 3 int a = 2 ; 4 5 int main ( ) 6 { 7 int b = 3 ; 8 9 printf ( " adres zmiennej a %p\n", &a ) ; 10 printf ( " adres
Jak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest
Pętle Pętla to pewien fragment kodu, który jest wykonywany wielokrotnie. Wyobraź sobie taką sytuację. Piszesz program do szyfrowania danych. Dane są szyfrowane kolejno bajt po bajcie. Załóżmy, że plik
Podstawy programowania w języku C i C++
Podstawy programowania w języku C i C++ Część czwarta Operatory i wyrażenia Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,
Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 11 11.1 abstrakcyjne Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post
C-struktury wykład. Dorota Pylak
C-struktury wykład Dorota Pylak C-struktury W języku C++, jak w każdym języku obiektowym, mamy możliwość definiowania własnych typów danych, wraz z określeniem operacji, jakie na tych danych można wykonywać.
INFORMATYKA Studia Niestacjonarne Elektrotechnika
INFORMATYKA Studia Niestacjonarne Elektrotechnika Wydział Elektrotechniki i Informatyki dr inż. Michał Łanczont Wydział Elektrotechniki i Informatyki p. E419 tel. 81-538-42-93 m.lanczont@pollub.pl http://lanczont.pollub.pl
Laboratorium Systemów Operacyjnych. Ćwiczenie 4. Operacje na plikach
Laboratorium Systemów Operacyjnych Ćwiczenie 4. Operacje na plikach Wykonanie operacji wymaga wskazania pliku, na którym operacja ma zostać wykonana. Plik w systemie LINUX identyfikowany jest przez nazwę,
Programowanie w Sieci Internet. Python: Wątki. Kraków, 12 grudnia 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki
Programowanie w Sieci Internet Python: Wątki Kraków, 12 grudnia 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki Wątki akt pierwszy, kilka przydatnych funkcji Lib/threading.py modół pozwalający
Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal
Instrukcja wyboru, pętle 2 wykład. Podstawy programowania - Paskal Tematy Instrukcja wyboru jeden z wielu wariantów: case Pętle while repeat for Instrukcje sterowania pętli break continue goto Instrukcja
SYSTEM CYFROWEJ REJESTRACJI PRZEBIEGU ROZPRAW SĄDOWYCH W SĄDACH POWSZECHNYCH INSTRUKCJA UŻYTKOWNIKA PROGRAMU RECOURT PLAYER
SYSTEM CYFROWEJ REJESTRACJI PRZEBIEGU ROZPRAW SĄDOWYCH W SĄDACH POWSZECHNYCH INSTRUKCJA UŻYTKOWNIKA PROGRAMU RECOURT PLAYER Identyfikator: Rodzaj dokumentu: Instrukcja użytkownika programu Recourt Player
J. Ułasiewicz Programowanie aplikacji współbieżnych 1
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 9. Komunikacja przez pamięć dzieloną Metoda komunikacji przez wspólną pamięć może być użyta gdy procesy wykonywane są na maszynie jednoprocesorowej
1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość
1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float
Warto też w tym miejscu powiedzieć, że w C zero jest rozpoznawane jako fałsz, a wszystkie pozostałe wartości jako prawda.
Nazwa implementacji: Nauka języka C wyrażenia warunkowe if- Autor: Piotr Fiorek Opis implementacji: Poznanie struktury oraz zastosowania wyrażeń warunkowych if- w języku C. W programie realizującym jakiś
Struktury czyli rekordy w C/C++
Struktury czyli rekordy w C/C++ Wprowadzenie do programowania w języku C struktury. pola bitowe, unie Struktury (rekordy) są złożonymi zmiennymi, składającymi się z elementów różnych typów zwanych polami,
Celem tego projektu jest stworzenie
Prosty kalkulator Celem tego projektu jest stworzenie prostego kalkulatora, w którym użytkownik będzie podawał dwie liczby oraz działanie, które chce wykonać. Aplikacja będzie zwracała wynik tej operacji.
Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.
Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia Zmienna: [] [ '[' ']' ] ['=' ]; Zmienna to fragment pamięci o określonym
Podstawy Programowania Podstawowa składnia języka C++
Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include
Funkcja (podprogram) void
Funkcje Co to jest funkcja? Budowa funkcji Deklaracja, definicja i wywołanie funkcji Przykłady funkcji definiowanych przez programistę Przekazywanie argumentów do funkcji Tablica jako argument funkcji
Zwielokrotnianie wejścia wyjścia
Zwielokrotnianie wejścia wyjścia Bartłomiej Świercz Katedra Mikroelektroniki i Technik Informatycznych Łódź, 21 marca 2006 Wstęp Zwielokrotnianie wejścia wyjścia informowanie przez jądro procesu użytkownika
Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk
Podstawy informatyki Informatyka stosowana - studia niestacjonarne Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, Materiał
Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:
Podstawy Informatyki Metalurgia, I rok Historia Lata 0-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard Koniec lat 80 standard
Modułowy programowalny przekaźnik czasowy firmy Aniro.
Modułowy programowalny przekaźnik czasowy firmy Aniro. Rynek sterowników programowalnych Sterowniki programowalne PLC od wielu lat są podstawowymi systemami stosowanymi w praktyce przemysłowej i stały
Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++
Podstawy Informatyki Metalurgia, I rok Wykład 6 Krótki kurs C++ Historia Lata 70-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard