SEMOP(2) PodrÄcznik programisty Linuksa SEMOP(2)

Wielkość: px
Rozpocząć pokaz od strony:

Download "SEMOP(2) PodrÄcznik programisty Linuksa SEMOP(2)"

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 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

Bardziej szczegółowo

Temat zajęć: Mechanizmy IPC: semafory

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,

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Mechanizmy z grupy IPC

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Poniższe funkcje opisane są w 2 i 3 części pomocy systemowej.

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,

Bardziej szczegółowo

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

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,

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Pliki. Funkcje tworzące pliki i operujące na nich opisane są w części 2 pomocy systemowej. Tworzenie i otwieranie plików:

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:

Bardziej szczegółowo

Futex (Fast Userspace Mutex) Łukasz Białek

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

Bardziej szczegółowo

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

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.

Bardziej szczegółowo

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 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

Bardziej szczegółowo

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. 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,

Bardziej szczegółowo

Sygnały. 7. Sygnały (2005/2006)

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

Bardziej szczegółowo

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 ) 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

Bardziej szczegółowo

NAZWA groff front end systemu formatowania dokumentã³w groff

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]

Bardziej szczegółowo

Systemy Operacyjne 2: Wątki pthreads. dr inż. Arkadiusz Chrobot

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

Bardziej szczegółowo

1. Procesy i współbieżność

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,

Bardziej szczegółowo

Smarty PHP. Leksykon kieszonkowy

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Przeplot. Synchronizacja procesów. Cel i metody synchronizacji procesów. Wątki współbieżne

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

Bardziej szczegółowo

Funkcje jadra systemu operacyjnego UNIX

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

Bardziej szczegółowo

HIER(7) PodrÄcznik programisty Linuksa HIER(7)

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

Bardziej szczegółowo

1. Uruchom poniższy program tworzący pojedynczy wątek:

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

Bardziej szczegółowo

Model procesu w systemie Linux. Tomasz Borzyszkowski

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

Bardziej szczegółowo

Funkcje jadra systemu operacyjnego UNIX

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

Bardziej szczegółowo

Laboratorium z systemów operacyjnych. System plików - funkcje systemowe. Anna Wojak

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

Bardziej szczegółowo

Boty: Paginacja Zmieniony

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Å

Bardziej szczegółowo

Programowanie przy użyciu gniazdek

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Systemy Operacyjne - Operacje na plikach

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

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Simulator of Operating System

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

Bardziej szczegółowo

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C

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:

Bardziej szczegółowo

w odróżnieniu od procesów współdzielą przestrzeń adresową mogą komunikować się za pomocą zmiennych globalnych

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ć

Bardziej szczegółowo

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>

/* 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

Bardziej szczegółowo

Wielozadaniowość w systemie Microsoft Windows

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ść

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Procesy. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 9 października 2011

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

Bardziej szczegółowo

UNIX. mgr inż. Marcin Borkowski

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

Bardziej szczegółowo

1. Timery i zdarzenia

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.

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi.

Łą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

Bardziej szczegółowo

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

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()

Bardziej szczegółowo

Wskaźniki w C. Anna Gogolińska

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

Bardziej szczegółowo

Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi)

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

Bardziej szczegółowo

Obsługa sygnałów. Tomasz Borzyszkowski

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

Bardziej szczegółowo

PERSON Kraków 2002.11.27

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

Bardziej szczegółowo

Komunikacja za pomocą potoków. Tomasz Borzyszkowski

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

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

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ę

Bardziej szczegółowo

Instrukcja do ćwiczeń

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/).

Bardziej szczegółowo

z powielaniem wielu struktur danych oraz komunikacja

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

Bardziej szczegółowo

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

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

Bardziej szczegółowo

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 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,

Bardziej szczegółowo

IPC: Kolejki komunikatów

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

Bardziej szczegółowo

4. Funkcje. Przykłady

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

Bardziej szczegółowo

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1

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

Bardziej szczegółowo

Struktury Struktura polami struct struct struct struct

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

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

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

Bardziej szczegółowo

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 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()

Bardziej szczegółowo

C-struktury wykład. Dorota Pylak

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ć.

Bardziej szczegółowo

Ingerencja w kod systemu operacyjnego (przerwania) Programowanie na niskim poziomie (instrukcje specjalne) Trudności implementacyjne (alg.

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

Bardziej szczegółowo

Programowanie w języku C++

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

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

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

Bardziej szczegółowo

2 Implementacja w systemie Linux 2.4

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

Bardziej szczegółowo

Programowanie i struktury danych

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

Bardziej szczegółowo

DYNAMICZNE PRZYDZIELANIE PAMIECI

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

Bardziej szczegółowo

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 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)

Bardziej szczegółowo

Klasy i obiekty cz II

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

Bardziej szczegółowo

Materiały do laboratorium MS ACCESS BASIC

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

Bardziej szczegółowo

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 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

Bardziej szczegółowo

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. 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

Bardziej szczegółowo

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

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

Bardziej szczegółowo

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja wielokrotna)

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

Bardziej szczegółowo

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

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).

Bardziej szczegółowo

Wskaźniki. Programowanie Proceduralne 1

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

Bardziej szczegółowo

Jak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest

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

Bardziej szczegółowo

Podstawy programowania w języku C i C++

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,

Bardziej szczegółowo

Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.

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

Bardziej szczegółowo

C-struktury wykład. Dorota Pylak

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ć.

Bardziej szczegółowo

INFORMATYKA Studia Niestacjonarne Elektrotechnika

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

Bardziej szczegółowo

Laboratorium Systemów Operacyjnych. Ćwiczenie 4. Operacje na plikach

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ę,

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

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

Bardziej szczegółowo

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 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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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ść 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

Bardziej szczegółowo

Warto też w tym miejscu powiedzieć, że w C zero jest rozpoznawane jako fałsz, a wszystkie pozostałe wartości jako prawda.

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ś

Bardziej szczegółowo

Struktury czyli rekordy w C/C++

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,

Bardziej szczegółowo

Celem tego projektu jest stworzenie

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.

Bardziej szczegółowo

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

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

Bardziej szczegółowo

Podstawy Programowania Podstawowa składnia języka C++

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

Bardziej szczegółowo

Funkcja (podprogram) void

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

Bardziej szczegółowo

Zwielokrotnianie wejścia wyjścia

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

Bardziej szczegółowo

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

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ł

Bardziej szczegółowo

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

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

Bardziej szczegółowo

Modułowy programowalny przekaźnik czasowy firmy Aniro.

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

Bardziej szczegółowo

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++

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

Bardziej szczegółowo