Procesy w systemach UNIX i Linux

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

Download "Procesy w systemach UNIX i Linux"

Transkrypt

1 SOE Systemy Operacyjne Wykład 5 Procesy w systemach UNIX i Linux dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW

2 Procesy Proces wykonujący się program identyfikator PID Procesy spokrewnione proces macierzysty (rodzicielski, rodzic) identyfikator PPID proces potomny (potomek)

3 Grupy i sesje procesów Terminal sterujący Sesja procesów procesy związane z jednym terminalem sterującym identyfikator SID lider sesji Grupa procesów procesy współpracujące identyfikator PGID lider grupy grupa pierwszoplanowa grupy drugoplanowe Sesja Grupa P P P P P P

4 ps [opcje] Lista aktywnych procesów Opcje wyboru procesów -a -wszystkie procesy związane z jakimś terminalem sterującym -e, -A -wszystkie procesy -u user -wszystkie procesy wskazanego użytkownika -t term -wszystkie procesy związane z wskazanym przez argument term terminalem sterującym -p PID -proces o podanym numerze PID Opcje zakresu informacji -f -format pełny -l -format długi -j - format zorientowany na prace (SID, PGID) -o format -format zdefiniowany przez użytkownika

5 Przykład - lista procesów w systemie Solaris zawrat.apw16 $ ps -ef UID PID PPID C STIME TTY TIME CMD root Apr 27? 0:32 sched root Apr 27? 0:07 /etc/init - root Apr 27? 0:05 pageout root Apr 27? 222:55 fsflush root Apr 27? 0:00 /usr/lib/saf/sac -t 300 root Apr 27? 0:50 /usr/sbin/vold root Apr 27? 0:01 /usr/sbin/rpcbind root Apr 27? 0:00 /usr/lib/autofs/automountd root Apr 27? 0:00 /usr/lib/lpsched root Apr 27? 0:00 /usr/lib/nfs/lockd root Apr 27? 93:25 /usr/lib/autofs/automountd root Apr 27? 164:24 /usr/openwin/bin/x root Apr 27? 2:37 /usr/sbin/inetd -s root Apr 27? 3:06 /usr/sbin/syslogd root Apr 27? 0:01 /usr/sbin/cron root Apr 27? 0:00 /usr/lib/saf/ttymon root Apr 27? 1:22 /usr/lib/sendmail -bd -q15m root Apr 27? 0:22 /usr/local/ssh/sbin/sshd2 root :30:20 pts/1 0:00 ps -ef apw :59:42 pts/1 0:00 -zsh

6 Najważniejsze procesy systemowe Pierwszy proces w systemie PID=0 sched, swapper (UNIX, np. Solaris) demon wymiany INIT_TASK (Linux) proces idle Proces init PID=1 uruchamia usługi systemowe program /etc/init plik konfiguracyjny /etc/inittab adoptuje osierocone procesy

7 Najważniejsze procesy systemowe Demony oczekują w uśpieniu na żądanie określonej usługi nie posiadają terminala sterującego Przykłady demonów (Solaris) sched pageout fsflush syslogd lockd cron lpsched inetd -demon wymiany -demon wymiany stron -demon synchronizacji systemu plików -demon przechowywania komunikatów systemowych -demon zajmowania plików i rekordów -demon zegarowy -demon drukowania -demon internetowy

8 Reprezentacja procesu - UNIX (Solaris) Struktura procesu: struct proc { proc_t alokowana dynamicznie w przestrzeni adresowej jądra stale widoczna dla jądra Struktura użytkownika: struct user { user_t u-obszar, obszar użytkownika w przestrzeni adresowej użytkownika widoczna gdy proces się wykonuje (po przełączeniu kontekstu) zawiera dane potrzebne tylko w czasie wykonywania procesu

9 Reprezentacja procesu - UNIX (Solaris) Lista aktywnych procesów: extern proc_t *practive practive PID PID PID next prev next prev next prev

10 Reprezentacja procesu - Linux Struktura procesu: struct task_struct { alokowana dynamicznie w przestrzeni adresowej jądra Lista procesów init_task task_struct task_struct task_struct PID PID PID next prev next prev next prev

11 Reprezentacja procesu - Linux Tablica haszowania

12 Atrybuty procesu Stan procesu Powiązania z innymi procesami wskaźniki do sąsiednich procesów na liście wskaźniki do procesu macierzystego i rodzeństwa Identyfikatory Parametry szeregowania Atrybuty związane z systemem plików Parametry pamięci wirtualnej procesu Odmierzanie czasu Obsługa sygnałów Kontekst poziomu rejestru

13 Stany procesu - UNIX SVR4 Wykonywany w trybie użytkownika funkcja systemowa przerwanie powrót Wykonywany w trybie jądra zakończenie oczekiwanie na zdarzenie Zombie wywłaszczenie przydział procesora utworzenie procesu Utworzony przydział zasobów Gotowy wystąpienie zdarzenia Uśpiony wstrzymanie wznowienie wstrzymanie wznowienie Zatrzymany wznowienie Zatrzymany uśpiony

14 Stany procesu - Solaris SIDL SRUN SONPROC SSLEEP SZOMB SSTOPPED -pośredni w tworzeniu procesu -gotowy -wykonywany -uśpiony -zombie -zatrzymany

15 Stany procesu - Linux TASK_RUNNING -działający TASK_INTERRUPTIBLE -uśpiony przerywalny TASK_UNINTERRUPTIBLE -uśpiony nieprzerywalny TASK_ZOMBIE -zombie TASK_STOPPED -zatrzymany

16 Identyfikatory Identyfikatory procesów pid -identyfikator procesu ppid -identyfikator procesu macierzystego pgid -identyfikator grupy procesów sid -identyfikator sesji Identyfikatory użytkownika i grupy użytkowników uid, gid -identyfikatory rzeczywiste euid, egid -identyfikatory obowiązujące suid, sgid -identyfikatory zapamiętane

17 Informacje dotyczące systemu plików Tablica deskryptorów otwartych plików Maska uprawnień do tworzonych plików umask Wskaźnik do v-węzła katalogu głównego (korzeniowego) procesu Wskaźnik do v-węzła katalogu bieżącego procesu

18 Kontekst procesu Kontekst poziomu użytkownika obszar kodu wykonywalnego obszar danych obszar stosu obszary pamięci dzielonej Kontekst poziomu rejestru licznik rozkazów rejestr stanu procesora rejestry ogólnego przeznaczenia Kontekst poziomu jądra struktury danych opisujące proces stos jądra

19 Operacje na procesach Pobieranie i ustawianie atrybutów Tworzenie procesu Kończenie procesu Oczekiwanie na zakończenie procesu potomnego Uruchamianie programów

20 Funkcja main() int main (int argc, char *argv[], char *envp[]); Środowisko tablica napisów: argument wywołania: zmienna globalna: funkcje: zmienna=wartość char *envp[] extern char *environ[]; getenv(), putenv()

21 Pobieranie identyfikatorów pid_t getpid(void); pid_t getppid(void); pid_t getpgrp(void); pid_t getpgid(pid_t pid); uid_t getuid(void); gid_t getgid(void); uid_t geteuid(void); gid_t getegid(void);

22 Pobieranie i ustawianie atrybutów int setuid(uid_t uid); int setegid(gid_t egid); int seteuid(uid_t euid); int setgid(gid_t gid); Użytkownik root może ustawić dowolne wartości UID, EUID, SUID Zwykły użytkownik może zmieniać tylko EUID pomiędzy wartościami UID i SUID Modyfikatory praw dostępu w atrybutach pliku z kodem programu

23 Tworzenie procesu pid_t fork(void); pid_t vfork(void); Wartość zwracana przez funkcję: -1 błąd funkcji PID potomka w procesie macierzystym 0 w procesie potomnym

24 Funkcja fork() fork() a vfork() tworzy logiczną kopię kontekstu procesu macierzystego segment kodu współdzielony kopiowanie przy zapisie (ang. copy-on-write) nie wstrzymuje procesu macierzystego Funkcja vfork() nie tworzy kopii kontekstu procesu macierzystego (procesy współdzielą przestrzeń adresową) wstrzymuje proces macierzysty do momentu, gdy: potomek wywoła kod nowego programu (funkcja exec()) potomek zakończy się (funkcja exit())

25 Kończenie procesu void _exit(int status); void exit(int status); Realizacja przez jądro: zamyka otwarte pliki zwalnia przydzielone zasoby zmienia stan procesu na zombie zapisuje w strukturze procesu kod wyjścia (status zakończenie) sumaryczny czas wykonywania procesu i jego potomków procesy potomne adoptowane są przez proces init informuje proces macierzysty o zakończeniu potomka (sygnałem SIGCHLD)

26 Przykład tworzenie procesu (1) #include <stdio.h> #include <unistd.h> #include <sys/types.h> int main(void) { pid_t pid; if ((pid = fork()) == -1) { perror("fork"); exit(1);

27 Przykład tworzenie procesu (2) if (pid == 0) { printf("proces potomny: fork()=%d\n", pid); pid = getpid(); printf("potomek: PID = %d\n", pid); exit(0); else { printf("proces macierzysty: fork()=%d\n", pid); pid = getpid(); printf("rodzic: PID = %d\n", pid); exit(0); return(0);

28 Przykład tworzenie kilku procesów (1) #include <stdio.h> #include <stdlib.h> int main() { int n; printf ("PID=%d RODZIC \n", getpid()); for (n=0;n<3;n++) { if (fork()==0) printf ("PID=%d NOWY\n", getpid()); fflush(stdout); printf ("PID=%d KONIEC\n", getpid());

29 Przykład tworzenie kilku procesów (2) #include <stdio.h> #include <stdlib.h> int main() { int n; printf ("PID=%d RODZIC \n", getpid()); for (n=0;n<3;n++) { if (fork()==0) { printf ("PID=%d NOWY\n", getpid()); fflush(stdout); exit(0); printf ("PID=%d KONIEC\n", getpid());

30 Oczekiwanie na zakończenie procesu pid_t wait(int *status); pid_t waitpid(pid_t pid, int *status, int flags); pid_t wait3(int *status, int options, struct rusage *rusage); pid_t wait4(pid_t pid, int *status, int options, struct rusage *rusage);

31 Oczekiwanie na zakończenie procesu Realizacja przez jądro: nie ma żadnego procesu potomnego zwraca błąd nie ma potomka w stanie zombie usypia proces macierzysty, który oczekuje na sygnał śmierci potomka SIGCHLD jest potomek w stanie zombie dodaje czas procesora zużyty przez potomka w strukturze procesu macierzystego zwalnia strukturę procesu potomnego zwraca identyfikator PID jako wartość funkcji oraz status zakończenia procesu potomnego

32 Status zakończenia procesu Status zakończenia = kod wyjścia (liczba 2-bajtowa) proces zakończony normalnie, przez wywołanie exit() Kod zwrócony przez exit() proces zakończony sygnałem 0 Numer sygnału proces zatrzymany sygnałem Numer sygnału WSTOPFLG

33 Status zakończenia procesu c.d. Odczytanie statusu zakończenia while ((pid = wait(&status)) > 0) printf("pid=%d, status=%d\n", pid, (status>>8)); Makra WIFEXITED(status) WEXITSTATUS(status) WIFSIGNALED(status) WTERMSIG(status) WIFSTOPPED(status) WSTOPSIG(status)

34 Wykorzystanie zasobów Funkcje wait3() i wait4() Funkcja getrusage int getrusage(int who, struct rusage *r_usage); argument who RUSAGE_SELF -przez proces RUSAGE_CHILDREN -przez zakończone i oczekujące procesy potomne

35 Wykorzystanie zasobów struct rusage { struct timeval ru_utime; /* user time used */ struct timeval ru_stime; /* system time used */ long ru_maxrss; long ru_ixrss; long ru_idrss; long ru_isrss; long ru_minflt; long ru_majflt; long ru_nswap; long ru_inblock; long ru_oublock; long ru_msgsnd; long ru_msgrcv; long ru_nsignals; long ru_nvcsw; long ru_nivcsw;

36 Wykorzystanie zasobów struct timeval { time_t tv_sec; /* seconds */ suseconds_t tv_usec; /* microseconds */ ;

37 Przykład wykorzystanie zasobów (1) #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/resource.h> #include <sys/time.h> int main(void) { pid_t pid; int status; struct rusage rusage; unsigned long czas1, czas2; long suma, i; if ((pid = fork()) == -1) { perror("blad fork"); exit(1);

38 Przykład wykorzystanie zasobów (2) if (pid == 0) { pid = getpid(); printf("proces potomny: PID = %d\n", pid); for (i=0; i<40000; i++) { suma+=i*3+5; pid = getpid(); exit(0);

39 Przykład wykorzystanie zasobów (3) else { pid = getpid(); printf("proces macierzysty: PID = %d\n", pid); if (wait3(&status, 0, &rusage) == -1) { perror("blad wait3"); exit(1); czas1 = (rusage.ru_utime).tv_sec* (rusage.ru_utime).tv_usec/1000; czas2 = (rusage.ru_stime).tv_sec* (rusage.ru_stime).tv_usec/1000; printf("czas wykonania potomka\n"); printf("\t- w trybie użytkownika: %ld ms\n", czas1); printf("\t- w trybie jądra: %ld ms\n", czas2); exit(0); return(0);

40 Uruchamianie programów int execve(const char *path, char *const argv[], char *const envp[]); Realizacja: odszukuje i-węzła pliku z programem wykonywalnym sprawdza możliwości uruchomienia kopiuje argumenty wywołania i środowisko rozpoznaje format pliku wykonywalnego usuwa poprzedni kontekst procesu (zwalnia segmenty pamięci kodu, danych i stosu) łąduje kod nowego programu uruchamia nowy program (wznawia wykonywania bieżącego procesu)

41 Charakterystyka rodziny funkcji exec() Funkcja Przekazywanie argumentów Przekazywanie zmiennych środowiska Wskazanie położenia programu execv tablica zmienna globalna environ nazwa ścieżkowa pliku execve tablica tablica nazwa ścieżkowa pliku execvp tablica zmienna globalna environ ścieżka poszukiwań PATH execl lista zmienna globalna environ nazwa ścieżkowa pliku execle lista tablica nazwa ścieżkowa pliku execlp lista zmienna globalna environ ścieżka poszukiwań PATH

42 Przykład nowy program #include <stdio.h> #include <unistd.h> #include <sys/types.h> int main(void) { pid_t pid; pid = getpid(); printf("proces: PID = %d\n", pid); execlp("ps", "ps", "-f", NULL); printf("proces: PID = %d wykonal exec...\n", pid); exit(0);

43 Schemat uruchamiania programów potomek fork() rodzic exec(program) program _exit() wait()

44 Funkcja biblioteczna system() int system(const char *string); potomek vfork() rodzic exec( /bin/sh, ) sh c string _exit() wait()

45 Interpreter poleceń Interfejs tekstowy użytkownika powłoka (ang. shell) sh, csh, tcsh, zsh, bash Działanie interpretera podstawia wartości zmiennych i wyniki zagnieżdżonych poleceń dokonuje podziału na nazwę polecenia i argumenty (interpretacja separatorów) wykonuje przekierowanie strumieni danych, rozwija nazwy plików, rozpoznaje i wykonuje polecenie polecenie wbudowane lub funkcja program lub skrypt -> fork() + exec()

46 Uproszczony przykład z laboratorium L0 int main() { char bufor[80]; char* arg[10]; int bg; while (1) { printf("msh $ "); fgets(bufor, 80, stdin); bg = AnalizujPolecenie(bufor, arg); if (arg[0] == NULL) continue; else if (strcmp(arg[0], "exit")==0) exit(0); else Drukuj(arg); Wykonaj(arg, bg);

47 Uproszczony przykład z laboratorium L0 int AnalizujPolecenie(char *bufor, char *arg[]) { int counter=0; int i=0, j=0; arg[0] = bufor; arg[1] = NULL; /* Tu nalezy podzielic string wejsciowy na nazwe polecenia i poszczegolne argumenty oraz wypelnic tablice argumentow: arg[0] = nazwa, arg[1] = 1 argument, itd. */ return 0; int Drukuj(char *arg[]) { /* Tu nalezy wypisac nazwe polecenia i wszystkie argumenty na standardowe wyjscie (stdout) */

48 Uproszczony przykład z laboratorium L0 int Wykonaj(char **arg) { pid_t pid; int status; int i=0, n=0; char cmd[80]; while (arg[i]!= NULL){ strcat(cmd, arg[i++]); strcat(cmd, " "); system(cmd);

49 Schemat działania powłoki potomek fork() rodzic exec(program) program _exit() wait() potomek na pierwszym planie potomek w tle

50 Przykład prosty interpreter poleceń int main() { char bufor[80]; char* arg[10]; int bg; while (1) { printf("msh $ "); fgets(bufor, 80, stdin); bg = AnalizujPolecenie(bufor, arg); if (arg[0] == NULL) continue; else if (strcmp(arg[0], "exit")==0) exit(0); else Wykonaj(arg, bg);

51 Przykład prosty interpreter poleceń int Wykonaj(char **arg, int bg) { pid_t pid; int status; if ((pid = fork()) == 0) { execvp(arg[0],arg); perror("blad exec"); exit(1); else if (pid > 0) { if (bg == 0) waitpid(pid, &stat, 0); return 0; else { perror("blad fork"); exit(2);

52 Przykład prosty interpreter poleceń int AnalizujPolecenie(char *bufor, char *arg[]) { int counter=0; int i=0, j=0; while (bufor[counter]!= '\n') { while (bufor[counter] == ' ' bufor[counter] == '\t') counter++; if (bufor[counter]!= '\n') { arg[i++] = &bufor[counter]; while (bufor[counter]!= ' ' && bufor[counter]!= '\t' && bufor[counter]!= '\n') counter++; if (bufor[counter]!= '\n') bufor[counter++] = '\0';

53 Przykład prosty interpreter poleceń bufor[counter] = '\0'; arg[i]=null; if (i>0) while (arg[i-1][j]!= '\0') { if (arg[i-1][j] == '&') { if (j == 0) arg[i-1] = NULL; else arg[i-1][j] = '\0'; return 1; j++; return 0;

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

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

2. Zarządzanie procesami

2. Zarządzanie procesami J. Ułasiewicz Komputery i systemy równoległe 1 2. Zarządzanie procesami 2.1 Funkcje zarządzania procesami Administrowanie procesami obejmuje następujące czynności: Tworzenie procesu. Testowanie atrybutów

Bardziej szczegółowo

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy) Procesy i shell. Polecenia ps, sleep, exit, jobs, bg, fg, top, kill, bash, tcsh, which, type, whereis, touch. Metaznak & i >>. Dowiązania miękkie i twarde. Proces jest programem, który jest wykonywany

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

Temat zajęć: Obsługa procesów w systemie.

Temat zajęć: Obsługa procesów w systemie. Temat zajęć: Obsługa procesów w systemie. Czas realizacji zajęć: 90 min. Zakres materiału, jaki zostanie zrealizowany podczas zajęć: Procesy macierzyste i potomne, tworzenie procesów potomnych, uruchamianie

Bardziej szczegółowo

Procesy. S. Samolej: Procesy

Procesy. S. Samolej: Procesy Procesy dr inż. Sławomir Samolej Katedra Informatyki i Automatyki Politechnika Rzeszowska Program przedmiotu oparto w części na materiałach opublikowanych na: http://wazniak.mimuw.edu.pl/ oraz Na materiałach

Bardziej szczegółowo

2. Zarządzanie procesami

2. Zarządzanie procesami J. Ułasiewicz Programowanie aplikacji współbieżnych 1 2. Zarządzanie procesami 2.1 Funkcje zarządzania procesami Administrowanie procesami obejmuje następujące czynności: Testowanie atrybutów procesu.

Bardziej szczegółowo

Obsługa plików Procesy

Obsługa plików Procesy Obsługa plików Procesy Systemy Operacyjne 2 laboratorium Mateusz Hołenko 15 października 2011 Plan zajęć 1 Obsługa plików 1 Pliki w systemie Linux i-węzły deskryptory plików 2 Operacje na plikach 3 Operacje

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

2. Zarządzanie procesami

2. Zarządzanie procesami J. Ułasiewicz Sieciowe Systemy Operacyjne 1 2. Zarządzanie procesami W systemie Linux wszelkie aktywności wykonywane są przez procesy które operują na pamięci operacyjnej, plikach i urządzeniach. Procesy

Bardziej szczegółowo

Uruchamianie programów w systemie Linux, potoki, strumienie, procesy, alias

Uruchamianie programów w systemie Linux, potoki, strumienie, procesy, alias 7 październik 2008 Uruchomienie, monitorowanie procesu, potoki, aliasy S laj d 1 Uruchamianie programów w systemie Linux, potoki, strumienie, procesy, alias 7 październik 2008 Uruchomienie, monitorowanie

Bardziej szczegółowo

procesy odrębne dzielone

procesy odrębne dzielone procesy odrębne Unikatowy PID (2-32000) Zmienne Zbiory deskryptorów plików Przestrzeń stosu (lokalne zmienne, wywołania funkcji) Środowisko Licznik rozkazów dzielone Kod programu brak możliwości zapisu

Bardziej szczegółowo

Powłoka interpreter poleceń systemu UNIX

Powłoka interpreter poleceń systemu UNIX SOE - Systemy Operacyjne Wykład 4 Powłoka interpreter poleceń systemu UNIX dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Powłoka Interpreter poleceń, powłoka (ang. shell)

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

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

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

Procesy. 5. Procesy (2005/2006)

Procesy. 5. Procesy (2005/2006) Procesy Program w systemie UNIX jest plikiem zawierającym gotowy do wykonania przez komputer ciąg instrukcji oraz zestaw danych zainicjowanych przez programistę. Proces jest podstawową aktywną jednostką

Bardziej szczegółowo

Laboratorium systemów operacyjnych ćwiczenie nr 3. [ilość modułów: 1] Temat zajęć: Procesy w systemie operacyjnym

Laboratorium systemów operacyjnych ćwiczenie nr 3. [ilość modułów: 1] Temat zajęć: Procesy w systemie operacyjnym Temat zajęć: Procesy w systemie operacyjnym Czas realizacji zajęć: 45 min. Zakres materiału, jaki zostanie zrealizowany podczas zajęć: Pojęcie procesu, procesy w systemie, usuwanie procesów, priorytety

Bardziej szczegółowo

Programowanie Współbieżne. W Linuxie/Unixie

Programowanie Współbieżne. W Linuxie/Unixie Programowanie Współbieżne W Linuxie/Unixie Identyfikatory pid numer identyfikacyjny procesu zwykle od 0 do 32K przydzielany przez system każdemu nowemu procesowi uzyskać możemy go przez int getpid() 0

Bardziej szczegółowo

pami eć operacyjna przechowuje dane do przetworzenia, tymczasowe dane pomocnicze,

pami eć operacyjna przechowuje dane do przetworzenia, tymczasowe dane pomocnicze, 16 3 Procesy 3 Procesy Pojecie procesu jest kluczowe dla zrozumienia funkcjonowania wielozadaniowych systemów operacyjnych. Trudność w zrozumieniu tego pojecia i tym samym zg lebienie mechanizmu obs lugi

Bardziej szczegółowo

4.2 Sposób korzystania z l acza

4.2 Sposób korzystania z l acza 4.2 Sposób korzystania z l acza 31 Opis programu: Program procesu potomnego (linie 16 19) jest taki sam, jak w przyk ladzie na listingu 3. W procesie macierzystym nastepuje z kolei przekierowanie standardowego

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

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

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

Systemy operacyjne III

Systemy operacyjne III Systemy operacyjne III WYKŁAD 2 Jan Kazimirski 1 Procesy w systemie operacyjnym 2 Proces Współczesne SO w większości są systemami wielozadaniowymi. W tym samym czasie SO obsługuje pewną liczbę zadań procesów

Bardziej szczegółowo

Systemy operacyjne Programowanie w języku powłoki sh

Systemy operacyjne Programowanie w języku powłoki sh Systemy operacyjne Programowanie w języku powłoki sh [2] Programowanie w języku powłoki sh Powłoka, interpreter poleceń angshell jest programem uruchamianym standardowo po otwarciu sesji użytkownika przez

Bardziej szczegółowo

Zarządzanie Procesami

Zarządzanie Procesami Rozumienie pojęcia proces w informatyce jest, w istocie rzeczy, bliskie jego zwyczajowemu pojmowaniu, czyli jako pewnej sekwencji zmian lub czy zdarzeń zachodzących wg ustalonego schematu (choć niekoniecznie

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

UXP1A Unix Programowanie i Architektura

UXP1A Unix Programowanie i Architektura UXP zima 215-216, Grzegorz Blinowski UXP1A Unix Programowanie i Architektura zima 215-216 Grzegorz Blinowski Instytut Informatyki Politechniki Warszawskiej UXP zima 215-216, Grzegorz Blinowski Regulamin,

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

Łącza nienazwane(potoki)

Łącza nienazwane(potoki) 8. Łącza nienazwane(potoki) Łącze (potok, ang. pipe) jest to urządzenie komunikacyjne pozwalające na przesyłanie informacji w jedną stronę. Jeden proces wysyła dane do łącza za pomocą funkcji write, zaś

Bardziej szczegółowo

1.1 Definicja procesu

1.1 Definicja procesu 1 Procesy pojęcia podstawowe 1 1.1 Definicja procesu Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

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

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

Systemy operacyjne / Programowanie w języku powłoki sh str.1/19

Systemy operacyjne / Programowanie w języku powłoki sh str.1/19 Systemy Operacyjne Programowanie w języku powłoki sh dr inż. Tomasz Jordan Kruk T.Kruk@ia.pw.edu.pl Instytut Automatyki i Informatyki Stosowanej Politechnika Warszawska Systemy operacyjne / Programowanie

Bardziej szczegółowo

Moduł 4: Strumienie, potoki, sterowanie procesami

Moduł 4: Strumienie, potoki, sterowanie procesami Moduł 4: Strumienie, potoki, sterowanie procesami Strumienie i potoki Standardowe strumienie są podstawowymi kanałami komunikacji pomiędzy komputerem a otoczeniem. Do podstawowych strumieni należą Standard

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Działanie systemu operacyjnego Budowa systemu komputerowego I NIC Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej

Bardziej szczegółowo

Pobieranie argumentów wiersza polecenia

Pobieranie argumentów wiersza polecenia Pobieranie argumentów wiersza polecenia 2. Argumenty wiersza polecenia Lista argumentów Lista argumentów zawiera cały wiersz poleceń, łącznie z nazwą programu i wszystkimi dostarczonymi argumentami. Przykłady:

Bardziej szczegółowo

Systemy operacyjne na platformach mobilnych 2 Podstawy obsługi powłoki Bash

Systemy operacyjne na platformach mobilnych 2 Podstawy obsługi powłoki Bash Systemy operacyjne na platformach mobilnych 2 Podstawy obsługi powłoki Bash Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna

Bardziej szczegółowo

Procesy, pliki, potoki, sygnały - uzupełnienie

Procesy, pliki, potoki, sygnały - uzupełnienie Procesy, pliki, potoki, sygnały - uzupełnienie dr inż. Sławomir Samolej Katedra Informatyki i Automatyki Politechnika Rzeszowska Program przedmiotu oparto w części na materiałach opublikowanych na: http://wazniak.mimuw.edu.pl/

Bardziej szczegółowo

przypadków wywo lanie systemowe (funkcja systemowa) lub funkcja biblioteczna zwraca wartość 1(czasamiNULL) iprzypisujezmiennej zewn etrznej,

przypadków wywo lanie systemowe (funkcja systemowa) lub funkcja biblioteczna zwraca wartość 1(czasamiNULL) iprzypisujezmiennej zewn etrznej, c Wies law P laczek 3 1 Obs luga b l edów Wwi ekszości przypadków wywo lanie systemowe (funkcja systemowa) lub funkcja biblioteczna kończ ac si e b l edem zwraca 1(czasamiNULL) iprzypisujezmiennej zewn

Bardziej szczegółowo

Jądro Powłoka System plików Programy użytkowe

Jądro Powłoka System plików Programy użytkowe LINUX Jądro Powłoka System plików Programy użytkowe / tmp etc dev bin usr home proc bin lib ułatwienia pliki ukryte pol1;pol2 pol1 \ arg1 \ arg2 ~/.. $HOME.nazwa ls -a metaznaki *? [.] maskowanie

Bardziej szczegółowo

Powłoka (shell) Powłoka ksh

Powłoka (shell) Powłoka ksh Powłoka (shell) Powłoka - interface między użytkownikiem a systemem operacyjnym. Funkcje: interpreter poleceń użytkownika język programowania poleceń Najczęściej stosowane powłoki: Bourne a sh Korna ksh

Bardziej szczegółowo

Temat zajęć: Tworzenie i obsługa wątków.

Temat zajęć: Tworzenie i obsługa wątków. Temat zajęć: Tworzenie i obsługa wątków. Czas realizacji zajęć: 180 min. Zakres materiału, jaki zostanie zrealizowany podczas zajęć: Tworzenie wątków, przekazywanie parametrów do funkcji wątków i pobieranie

Bardziej szczegółowo

Zarządzanie procesami (omawiane zagadnienia)

Zarządzanie procesami (omawiane zagadnienia) Zarządzanie procesami (omawiane zagadnienia) Pojęcie procesu Stany procesu Blok kontrolny procesu Tworzenie procesu Sygnały Kończenie wykonania procesu Działanie interpretatora poleceń (shell-a) Koncepcja

Bardziej szczegółowo

Zarządzanie procesami

Zarządzanie procesami Zarządzanie procesami Proces, najogólniej rzecz ujmując, jest wykonywanym programem. Na linuxowy proces składają się: Liniowa przestrzeń adresowa, w której z kolei można wydzielić sekcję tekstu zawierającą

Bardziej szczegółowo

Systemy Operacyjne Ćwiczenia

Systemy Operacyjne Ćwiczenia Systemy Operacyjne Ćwiczenia Wies law P laczek Wydzia l Fizyki, Astronomii i Informatyki Stosowanej, Uniwersytet Jagielloński ul. Reymonta 4, 30-059 Kraków 4 lutego 2009 Streszczenie Praca ta zawiera materia

Bardziej szczegółowo

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

SYSTEMY OPERACYJNE WYKLAD 6 - procesy Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 6 - procesy Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 Zasoby: PROCES wykonujący się program ; instancja programu

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej I NIC sieci Pamięć operacyjna Przerwania Przerwania

Bardziej szczegółowo

Procesy, wątki i zasoby

Procesy, wątki i zasoby Procesy, wątki i zasoby Koncepcja procesu i zasobu, Obsługa procesów i zasobów, Cykl zmian stanów procesu i kolejkowanie, Klasyfikacja zasobów, Wątki, Procesy i wątki we współczesnych systemach operacyjnych.

Bardziej szczegółowo

1 Przygotował: mgr inż. Maciej Lasota

1 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 1 1/7 Język C Instrukcja laboratoryjna Temat: Programowanie w powłoce bash (shell scripting) 1 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do programowania w powłoce Skrypt powłoki

Bardziej szczegółowo

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu Proces Procesy i wątki Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz

Bardziej szczegółowo

Laboratorium Procesy w systemach UNIX 3.2 Polecenia związane z procesami

Laboratorium Procesy w systemach UNIX 3.2 Polecenia związane z procesami Laboratorium 3 3.1 Procesy w systemach UNIX 3.2 Polecenia związane z procesami 1 3.1 Procesy w systemach UNIX Z systemami unixowymi związane jest pojęcie procesu. W takim ujęciu, proces, rozumiany jest

Bardziej szczegółowo

SUMA KONTROLNA (icmp_cksum) NUMER KOLEJNY (icmp_seq)

SUMA KONTROLNA (icmp_cksum) NUMER KOLEJNY (icmp_seq) Program my_ping: wysłanie komunikatu ICMP z żądaniem echa Struktura icmp (plik netinet/ip_icmp.h) 0 7 8 15 16 31 TYP (icmp_type) KOD (icmp_code) IDENTYFIKATOR (icmp_id) SUMA KONTROLNA (icmp_cksum) NUMER

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

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh. Powłoka I Popularne implementacje W stylu sh (powłoki zdefiniowanej w POSIX) bash (najpopularniejsza) zsh ksh mksh W stylu csh csh tcsh 12 października 2018 1 / 16 Powłoka II Zachęta Komunikuje się z użytkownikiem

Bardziej szczegółowo

Proces y i y w i ąt ą ki

Proces y i y w i ąt ą ki Procesy i wątki Proces Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz

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

Obsługa plików. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 25 września 2011

Obsługa plików. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 25 września 2011 Obsługa plików Systemy Operacyjne 2 laboratorium Mateusz Hołenko 25 września 2011 Plan zajęć 1 Pliki w systemie Linux i-węzły deskryptory plików 2 Operacje na plikach otwieranie i zamykanie zapis i odczyt

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

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego 1 /24 Pisanie pojedynczych znaków z klawiatury do pliku #include void main(void) { FILE *fptr; // wkaznik do pliku, tzw. uchwyt

Bardziej szczegółowo

Funkcje systemu Unix

Funkcje systemu Unix Funkcje systemu Unix Witold Paluszyński witold@ict.pwr.wroc.pl http://sequoia.ict.pwr.wroc.pl/ witold/ Copyright c 2002 2005 Witold Paluszyński All rights reserved. Niniejszy dokument zawiera materia ly

Bardziej szczegółowo

Biblioteka standardowa - operacje wejścia/wyjścia

Biblioteka standardowa - operacje wejścia/wyjścia Biblioteka standardowa - operacje wejścia/wyjścia Przemysław Gawroński D-10, p. 234 Wykład 6 15 stycznia 2019 (Wykład 6) Biblioteka standardowa - operacje wejścia/wyjścia 15 stycznia 2019 1 / 14 Outline

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Działanie systemu operacyjnego Budowa systemu komputerowego Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej Pamięć

Bardziej szczegółowo

Zarządzanie procesami i wątkami

Zarządzanie procesami i wątkami SOE - Systemy Operacyjne Wykład 4 Zarządzanie procesami i wątkami dr inŝ. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Pojęcie procesu (1) Program zbiór instrukcji dla procesora

Bardziej szczegółowo

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

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Program wykładów. Strona WWW przedmiotu: Program ćwiczeń projektowych Systemy operacyjne Systemy operacyjne Inżynieria obliczeniowa, II rok Krzysztof Wilk Katedra Informatyki Stosowanej i Modelowania wilk@agh.edu.pl Wykłady: 7 tygodni po 2 h, s. 209, B-4 Projekty: 2 godziny

Bardziej szczegółowo

J. Ułasiewicz Łącza nienazwane, nazwane, select 1

J. Ułasiewicz Łącza nienazwane, nazwane, select 1 J. Ułasiewicz Łącza nienazwane, nazwane, select 1 4. Komunikacja pomiędzy procesami przez łącza nienazwane i nazwane Łącza nienazwane (ang. Unnamed Pipes) i nazwane (ang. Unnamed Pipes) - jedna z historycznie

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

Instytut Teleinformatyki

Instytut Teleinformatyki Instytut Teleinformatyki Wydział Inżynierii Elektrycznej i Komputerowej Politechnika Krakowska programowanie usług sieciowych Dziedzina Unix laboratorium: 06 Kraków, 2014 06. Programowanie Usług Sieciowych

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

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

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) W informatyce występują ściśle obok siebie dwa pojęcia: sprzęt (ang. hardware) i oprogramowanie

Bardziej szczegółowo

Procesy, zasoby i wątki

Procesy, zasoby i wątki Procesy, zasoby i wątki Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Koncepcja procesu i zasobu Obsługa procesów i zasobów Cykl zmian stanów procesu i kolejkowanie Klasyfikacja zasobów

Bardziej szczegółowo

Procesy, zasoby i wątki

Procesy, zasoby i wątki Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Koncepcja procesu i zasobu Obsługa procesów i zasobów Cykl zmian stanów procesu i kolejkowanie Klasyfikacja zasobów Wątki Procesy i wątki

Bardziej szczegółowo

Procesy pojęcia podstawowe. 1.1 Jak kod źródłowy przekształca się w proces

Procesy pojęcia podstawowe. 1.1 Jak kod źródłowy przekształca się w proces Procesy pojęcia podstawowe 1 1.1 Jak kod źródłowy przekształca się w proces W języku wysokiego poziomu tworzy się tak zwany kod źródłowy który po zapisaniu będzie plikiem z programem źródłowym. Plik źródłowy

Bardziej szczegółowo

Prezentacja systemu RTLinux

Prezentacja systemu RTLinux Prezentacja systemu RTLinux Podstawowe założenia RTLinux jest system o twardych ograniczeniach czasowych (hard real-time). Inspiracją dla twórców RTLinux a była architektura systemu MERT. W zamierzeniach

Bardziej szczegółowo

Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni. Wykład 6. Karol Tarnowski A-1 p. Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411b Plan wykładu Operacje wejścia-wyjścia Dostęp do plików Struktury

Bardziej szczegółowo

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO LABORATORIUM Temat: QNX Neutrino Interrupts Mariusz Rudnicki 2016 Wstęp W QNX Neutrino wszystkie przerwania sprzętowe przechwytywane są przez jądro systemu. Obsługę

Bardziej szczegółowo

Programowanie Proceduralne

Programowanie Proceduralne Programowanie Proceduralne Struktury Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 10 Co dziś będzie: Definiowanie struktury Deklarowanie zmiennych bȩda cych strukturami

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

Linux: Procesy. Systemy Operacyjne. Mateusz Hołenko. 26 marca 2013

Linux: Procesy. Systemy Operacyjne. Mateusz Hołenko. 26 marca 2013 Linux: Procesy Systemy Operacyjne Mateusz Hołenko 26 marca 2013 Plan zajęć Co to jest sygnał? Polecenia systemowe Sygnały Zadania Mateusz Hołenko Linux: Procesy [2/18] Co to jest proces? Co to jest proces?

Bardziej szczegółowo

Procesy, zasoby i wątki

Procesy, zasoby i wątki Dariusz Wawrzyniak Koncepcja procesu i zasobu Obsługa procesów i zasobów Cykl zmian stanów procesu i kolejkowanie Klasyfikacja zasobów Wątki Procesy i wątki we współczesnych systemach operacyjnych Plan

Bardziej szczegółowo

41. System operacyjny. Postrzeganie systemu operacyjnego przez warstwę oprogramowania użytkowego

41. System operacyjny. Postrzeganie systemu operacyjnego przez warstwę oprogramowania użytkowego 41. System operacyjny. Postrzeganie systemu operacyjnego przez warstwę oprogramowania użytkowego Pierwsze komputery, budowane według zasad określonych przez Johna von Neumanna, nie były kompatybilne dla

Bardziej szczegółowo

Języki i metodyka programowania. Wprowadzenie do języka C

Języki i metodyka programowania. Wprowadzenie do języka C Literatura: Brian W. Kernighan, Dennis M. Ritchie Język Ansi C, Wydawnictwa Naukowo - Techniczne, 2007 http://cm.bell-labs.com/cm/cs/cbook/index.html Scott E. Gimpel, Clovis L. Tondo Język Ansi C. Ćwiczenia

Bardziej szczegółowo

Systemy Operacyjne I: Procesy

Systemy Operacyjne I: Procesy Politechnika Poznańska 4 kwietnia 2013 Materiały Prezentacja oraz inne materiały zostały przygotowane na podstawie: Użytkowanie systemu operacyjnego UNIX - dr D.Wawrzyniak Systemy operacyjne - skrypt -

Bardziej szczegółowo

// Liczy srednie w wierszach i kolumnach tablicy "dwuwymiarowej" // Elementy tablicy są generowane losowo #include <stdio.h> #include <stdlib.

// Liczy srednie w wierszach i kolumnach tablicy dwuwymiarowej // Elementy tablicy są generowane losowo #include <stdio.h> #include <stdlib. Wykład 10 Przykłady różnych funkcji (cd) - przetwarzanie tablicy tablic (tablicy "dwuwymiarowej") - sortowanie przez "selekcję" Dynamiczna alokacja pamięci 1 // Liczy srednie w wierszach i kolumnach tablicy

Bardziej szczegółowo

Zakład Systemów Rozproszonych

Zakład Systemów Rozproszonych Zakład Systemów Rozproszonych Politechnika Rzeszowska Moduł 1: Wprowadzenie do systemu UNIX Interpretator poleceń Interpreter poleceń użytkownika, czyli inaczej powłoka. Powłoka pośredniczy pomiędzy użytkownikiem

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

... Ireneusz Mrozek. Wydział Informatyki

... Ireneusz Mrozek. Wydział Informatyki Ireneusz Mrozek Wydział Informatyki Proces wykonujcy si program Proces jednostka pracy systemu zarzdzan przez system operacyjny. W skład procesu wchodz: - program; - dane - zawarto rejestrów, stosu; -

Bardziej szczegółowo

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI plan Cechy, właściwości procesów Multitasking Scheduling Fork czym jest proces? Działającą instancją programu Program jest kolekcją

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej sieci Pamięć operacyjna Przerwania Przerwania Przerwanie

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

Temat zajęć: Tworzenie skryptów powłoki systemu operacyjnego.

Temat zajęć: Tworzenie skryptów powłoki systemu operacyjnego. Temat zajęć: Tworzenie skryptów powłoki systemu operacyjnego. Czas realizacji zajęć: 135 min. Zakres materiału, jaki zostanie zrealizowany podczas zajęć: Zmienne śrowiskowe oraz ich eksportowanie, argumenty

Bardziej szczegółowo

Stan procesu. gotowy - czeka na przydział procesora, zakończony - zakończył działanie.

Stan procesu. gotowy - czeka na przydział procesora, zakończony - zakończył działanie. Procesy i wątki Proces Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz

Bardziej szczegółowo

Funkcje zawarte w bibliotece < io.h >

Funkcje zawarte w bibliotece < io.h > PLIKOWE OPERACJE WEJŚCIA - WYJŚCIA Język C/C++ nie ma wbudowanych żadnych instrukcji umożliwiających wykonywanie operacji wejścia-wyjścia! Służą do tego funkcje biblioteczne. Funkcje zawarte w bibliotece

Bardziej szczegółowo

POZNA SUPERCOMPUTING AND NETWORKING CENTER. Wprowadzenie do systemu operacyjnego Linux zarzdzanie procesami

POZNA SUPERCOMPUTING AND NETWORKING CENTER. Wprowadzenie do systemu operacyjnego Linux zarzdzanie procesami Wprowadzenie do systemu operacyjnego Linux zarzdzanie procesami plan funkcje i struktura jdra funkcje systemowe, pułapki i przerwania zarzdzanie procesami: charakterystyka ogólna tworzenie, usuwanie i

Bardziej szczegółowo

System operacyjny Linux

System operacyjny Linux Paweł Rajba pawel.rajba@continet.pl http://kursy24.eu/ Zawartość modułu 6 Język bash Pierwszy skrypt Rozwinięcia parametryczne Bloki instrukcji Dwa przydatne polecenia Tablice Sprawdzanie warunków Instrukcje

Bardziej szczegółowo

Funkcje zawarte w bibliotece < io.h >

Funkcje zawarte w bibliotece < io.h > PLIKOWE OPERACJE WEJŚCIA - WYJŚCIA Język C/C++ nie ma wbudowanych żadnych instrukcji umożliwiających wykonywanie operacji wejścia-wyjścia! Służą do tego funkcje biblioteczne. Funkcje zawarte w bibliotece

Bardziej szczegółowo

Instytut Teleinformatyki

Instytut Teleinformatyki Instytut Teleinformatyki Wydział Inżynierii Elektrycznej i Komputerowej Politechnika Krakowska programowanie usług sieciowych IPC Systemu V laboratorium: 08 Kraków, 2014 08. Programowanie Usług Sieciowych

Bardziej szczegółowo

SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus

SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Pamięć wirtualna Stronicowanie na żądanie większość współczesnych systemów

Bardziej szczegółowo