# echo przykład przykład. echo przykład

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

Download "# echo przykład przykład. echo przykład"

Transkrypt

1

2

3

4 # # echo przykład przykład echo przykład

5 fg jobs # sleep 10 # <Ctrl-Z> # ls... # jobs [1]+ Stopped sleep 10 # fg,,,,, #include <stdio.h> int main() printf( Hello world!\n ); vi mcedit pico jed emacs

6 # cc -o hello hello.c #./hello Hello world! # cc -Wall -o hello hello.c hello.c: In function main : hello.c:6: warning: control reaches end of non-void function int main() return 0; -Wall printf(3) # man 3 printf # export LANG=pl_PL.UTF-8 # man 2 open aplikacja funkcje biblioteczne funkcje systemowe (jądro systemu) write printf printf printf write

7 man # man 2 open # man 3 printf printf main() int char** int main(int argc, char* argv[]) int i; for(i=0; i<argc; i++) printf( argument %d: %s\n, i, argv[i]);

8 open open O_RDONLY O_WRONLY O_RDWR O_CREAT open fd = open( przyklad.txt, O_WRONLY O_CREAT, 0644); open stdin stdout stderr przykład.txt open

9 close(fd); close write(fd, Czesc, 5); write char buf[20];... n = read(fd, buf, 20); read write read read while((n=read(fd, buf, 20)) > 0) write(1, buf, n); errno int perror errno fd = open( przyklad.txt, O_RDONLY); if (fd == -1) printf( Kod: %d\n, errno); perror( Otwarcie pliku ); exit(1); errno errno.h

10 setlocale(lc_all, pl_pl.utf-8 ); fd = open( przyklad.txt, O_WRONLY O_APPEND O_CREAT, 0644); fd = unlink( przyklad.txt ); ftruncate fd = open( przyklad.txt, O_WRONLY); ftruncate(fd, 0); # umask 022 # umask 077 umask lseek int lseek(int fd, int offset, int whence); offset whence SEEK_SET SEEK_CUR SEEK_END lseek(fd, -1, SEEK_END); cat # mycat a.txt b.txt c.txt cp tee # ps ax mytee wynik.log wc

11 toupper # cat plik.txt tr a-z A-Z cmp lseek flock int fd = open(...); flock(fd, LOCK_EX);... flock(fd, LOCK_UN); LOCK_EX LOCK_SH fcntl struct flock lck; int fd = open(...); lck.l_type = F_WRLCK; lck.l_start = 10; lck.l_len = 20; lck.l_whence = SEEK_SET; fcntl(fd, F_SETLKW, &lck);... lck.l_type = F_UNLCK; fcntl(fd, F_SETLKW, &lck); F_WRLCK l_type F_RDLCK #./baza dane.db w A test dane.db

12 #./baza dane.db r A test hexdump # hexdump -C dane.db

13 printf( Poczatek\n ); fork(); printf( Koniec\n ); sleep fork ps -l #./a.out & # ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 R pts/2 00:00:00 bash 0 S schedu pts/2 00:00:00 a.out 0 S schedu pts/2 00:00:00 a.out 1 R pts/2 00:00:00 ps fork getpid getppid int x; x = fork(); printf( wynik fork=%d PID=%d PPID=%d\n, x, getpid(), getppid()); fork(); fork(); if (fork()==0) fork();

14 printf( Poczatek\n ); execl( /bin/ls, ls, -l, NULL); printf( Koniec\n ); ls -l printf( Poczatek\n ); if (fork()==0) /* proces potomny */ execlp( ls, ls, -l, NULL); exit(1); printf( Koniec\n ); if (fork()==0) /* proces potomny */... else /* proces macierzysty */ wait(null); printf( Koniec\n ); if (fork()==0) /* proces potomny */ exit(5); else /* proces macierzysty */ int stat; wait(&stat); printf( status=%d\n, stat>>8); sleep exec execvp execvp sort -n -k 3,3 -t: /etc/passwd

15 ps ax out.txt int fd; close(1); fd = open( out.txt, O_WRONLY O_CREAT, 0644); execlp( ps, ps, ax, NULL); dup dup2 int fd; fd = open( out.txt, O_WRONLY O_CREAT, 0644); dup2(fd, 1); # ls -l -a -i >> wynik.txt # grep xy < dane.txt > wynik1.txt 2> wynik2.txt

16 #include <stdio.h> #include <signal.h> void obsluga(int signo) printf( Odebrano sygnał %d\n, signo); int main() signal(sigint, obsluga); while(1) ; #./a.out C Odebrano sygnał 2 \ Quit kill #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <signal.h> void obsluga(int signo)

17 printf( Odebrano sygnał %d\n, signo); exit(0); int main() int pid; if ((pid=fork())==0) signal(sigint, obsluga); while(1); sleep(2); printf( Wysyłam sygnał do procesu potomnego %d\n, pid); kill(pid, 2); return 0; alarm pause pause printf( Naciśnij Ctrl-C\n ); pause(); printf( Dziękuję!\n ); sleep int x = 0;... while(x==0) ; x # cc -O2 czekaj.c -o czekaj #include <stdio.h> #include <stdlib.h> #include <signal.h> #include <unistd.h> #include <sys/wait.h>

18 void obsluga(int signo) int s; wait(&s); printf( Status zakończenia procesu potomnego: %d\n, s>>8); int main() signal(sigchld, obsluga); if (fork()==0) sleep(3); exit(5); while(1) sleep(1); printf( Proces macierzysty\n ); waitpid

19 pipe #include <stdio.h> #include <unistd.h> int main() int fd[2]; char buf[100]; pipe(fd); write(fd[1], Hello, 6); read(fd[0], buf, 6); printf( %s\n, buf); return 0; pipe(fd); if (fork()==0) write(...); exit(0);... sleep ls tr a-z A-Z #include <stdio.h>

20 #include <unistd.h> int main() int fd[2]; pipe(fd); if (fork()==0) dup2(fd[1], 1); execlp( ls, ls, NULL); else dup2(fd[0], 0); execlp( tr, tr, a-z, A-Z, NULL); return 0; out.txt # ls tr a-z A-Z > out.txt # ls -l /tmp sort -n -k 5,5 tail -5 # hostname -f #include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <sys/types.h> #include <sys/stat.h> int main() int fd; mkfifo( fifo, 0600); fd = open( fifo, O_WRONLY); write(fd, Hello, 6); close(fd); return 0;

21 ps ax tr a-z A-Z socketpair int fd[2]; if ((socketpair(pf_unix, SOCK_STREAM, 0, fd))==-1) perror( socketpair ); exit(1);

22 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/ipc.h> #include <sys/shm.h> int main() int id; id = shmget(0x111, 1024, 0600 IPC_CREAT); if (id==-1) perror( shmget ); exit(1); printf( Blok utworzony: %d\n, id); return 0; ipcs # ipcs Shared Memory Segments key shmid owner perms bytes nattch status 0x sobaniec Semaphore Arrays key semid owner perms nsems Message Queues key msqid owner perms used-bytes messages ipcrm # ipcrm -M 0x111

23 # ipcrm -m char* ptr;... ptr = shmat(id, NULL, 0); strcpy(ptr, Ala ma kota ); char* ptr;... shmdt(ptr); id = shmget(0x111, 1024, 0);... shmctl(id, IPC_RMID, NULL);

24 #include <stdio.h> #include <stdlib.h> #include <signal.h> #include <unistd.h> #include <sys/ipc.h> #include <sys/shm.h> #include <string.h> void obsluga(int sig) printf( sygnał w procesie %d\n, getpid()); int main() int id; char *ptr; int pid; signal(sighup, obsluga); id = shmget(0x111, 1024, 0600 IPC_CREAT); if (id==-1) perror( shmget ); exit(1); ptr = (char*)shmat(id, NULL, 0); if ((pid=fork())==0) int ppid = getppid(); sleep(1); while(1) strcpy(ptr, xxxxxx ); sleep(1); kill(ppid, 1); pause(); strcpy(ptr, oooooo ); sleep(1); kill(ppid, 1); pause(); else while(1) pause(); printf( %s\n, ptr); sleep(1); kill(pid, 1);

25 #include <stdio.h> #include <stdlib.h> #include <signal.h> #include <unistd.h> #include <sys/ipc.h> #include <sys/shm.h> #include <string.h> int ok = 0; void obsluga(int sig) ok = 1; int main() int id; char *ptr; int pid; signal(sighup, obsluga); id = shmget(0x111, 1024, 0600 IPC_CREAT); if (id==-1) perror( shmget ); exit(1); ptr = (char*)shmat(id, NULL, 0); if ((pid=fork())==0) int ppid = getppid(); while(1) strcpy(ptr, xxxxxx ); ok = 0; kill(ppid, 1); while(!ok); strcpy(ptr, oooooo ); ok = 0; kill(ppid, 1); while(!ok); else while(1) while(!ok); printf( %s\n, ptr); ok = 0; kill(pid, 1);

26 #include <stdio.h> #include <stdlib.h> #include <signal.h> #include <unistd.h> #include <sys/ipc.h> #include <sys/shm.h> #include <string.h> void obsluga(int sig) int main() int id; char *ptr; int pid; sigset_t mask, mask_old; signal(sighup, obsluga); sigemptyset(&mask); sigaddset(&mask, SIGHUP); sigprocmask(sig_block, &mask, &mask_old); id = shmget(0x111, 1024, 0600 IPC_CREAT); if (id==-1) perror( shmget ); exit(1); ptr = (char*)shmat(id, NULL, 0); if ((pid=fork())==0) int ppid = getppid(); while(1) strcpy(ptr, xxxxxx ); kill(ppid, 1); sigsuspend(&mask_old); strcpy(ptr, oooooo ); kill(ppid, 1); sigsuspend(&mask_old); else while(1) sigsuspend(&mask_old); printf( %s\n, ptr); kill(pid, 1);

27 #include <stdio.h> #include <stdlib.h> #include <sys/sem.h> int main() int sid; struct sembuf op; sid = semget(0x123, 1, 0600 IPC_CREAT); if (sid == -1) perror( semget ); exit(1); op.sem_num = 0; op.sem_flg = 0; /* podniesienie semafora (+1) */ op.sem_op = 1; semop(sid, &op, 1); /* opuszczenie semafora (-1) */ op.sem_op = -1; semop(sid, &op, 1); return 0; ipcs # ipcs Shared Memory Segments

28 key shmid owner perms bytes nattch status Semaphore Arrays key semid owner perms nsems 0x sobaniec Message Queues key msqid owner perms used-bytes messages ipcrm # ipcrm -S 0x123 # ipcrm -s int num;... num = semctl(sid, 0, GETVAL, 0); printf( semaphore value: %d\n, num); num = 1; semctl(sid, 0, SETVAL, num); #include <stdio.h> #include <stdlib.h> #include <sys/sem.h> int main(int argc, char* argv[]) int sid; struct sembuf op; sid = semget(0x123, 1, 0600 IPC_CREAT); if (sid == -1) perror( semget ); exit(1); printf( przed: %d\n, semctl(sid, 0, GETVAL, NULL)); op.sem_num = 0; op.sem_flg = 0; op.sem_op = atoi(argv[1]); semop(sid, &op, 1); printf( po: %d\n, semctl(sid, 0, GETVAL, NULL)); return 0; #include <stdio.h>

29 #include <stdlib.h> #include <unistd.h> #include <sys/sem.h> int main(int argc, char* argv[]) int sid; int num; struct sembuf op; sid = semget(0x123, 1, 0600 IPC_CREAT); if (sid == -1) perror( semget ); exit(1); if (argc>1) printf( Inicjacja semafora...\n\n ); num = 1; semctl(sid, 0, SETVAL, num); op.sem_num = 0; op.sem_flg = 0; while(1) printf( Wchodzę do sekcji krytycznej...\n ); op.sem_op = -1; semop(sid, &op, 1); printf( Jestem w sekcji krytycznej...\n ); sleep(5); op.sem_op = 1; semop(sid, &op, 1); printf( Wyszedłem z sekcji krytycznej...\n ); sleep(1); return 0;

30

31 msgget(2) mid = msgget(0x123, 0600 IPC_CREAT); ipcs long typedef struct long type; char text[1024]; MSG; msgsnd(2) MSG msg;... msgsnd(mid, &msg, strlen(msg.text)+1, 0); ipcs msgrcv(2) MSG msg;... msgrcv(mid, &msg, 1024, 0, 0); msgrcv long

32 msgrcv msgctl msgctl(mid, IPC_RMID, NULL); ipcrm

33 #include <stdio.h> #include <unistd.h> #include <pthread.h> void* worker(void* info) int i; for(i=0; i<10; i++) sleep(1); printf( thread\n ); return NULL; int main() pthread_t th; int i; pthread_create(&th, NULL, worker, NULL); for(i=0; i<10; i++) sleep(1); printf( main program\n ); pthread_join(th, NULL); return 0; # cc -o thtest thtest.c -lpthread # ps x # ps -L x

34 # ps -T x int d = 1; pthread_create(&th, NULL, worker, &d); #include <stdio.h> #include <unistd.h> #include <pthread.h> pthread_mutex_t mx; void* worker(void* info) int i; int tid = *(int*)info; for(i=0; i<10; i++) printf( Thread %d is entering critical section...\n, tid); pthread_mutex_lock(&mx); printf( Thread %d is in critical section...\n, tid); sleep(5); pthread_mutex_unlock(&mx); printf( Thread %d is leaving critical section...\n, tid); sleep(2); return NULL; int main() pthread_t th1, th2, th3; int w1=1, w2=2, w3=3; pthread_mutex_init(&mx, NULL); pthread_create(&th1, NULL, worker, &w1); pthread_create(&th2, NULL, worker, &w2); pthread_create(&th3, NULL, worker, &w3); pthread_join(th1, NULL); pthread_join(th2, NULL); pthread_join(th3, NULL); return 0; pthread_join(3)

35 int pthread_join(pthread_t th, void **retval); wait retval void pthread_exit(void *retval); retval pthread_join pthread_cancel int pthread_cancel(pthread_t thread); int pthread_setcancelstate(int state, int *oldstate); int pthread_detach(pthread_t th); pthread_join signal int pthread_kill(pthread_t thread, int signo); int pthread_sigmask(int how, const sigset_t *newmask, sigset_t *oldmask); newmask unsigned long int sigemptyset(sigset_t *set); int sigfillset(sigset_t *set); int sigaddset(sigset_t *set, int signum); int sigdelset(sigset_t *set, int signum); int sigismember(const sigset_t *set, int signum); pthread_sigmask int sigwait(const sigset_t *set, int *sig);

36 int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr); pthread_mutex_t m;... pthread_mutex_init(&m, NULL); pthread_mutex_lock() pthread_mutex_trylock() EBUSY pthread_mutex_unlock() pthread_mutex_destroy() pthread_mutex_t int pthread_cond_t c;... pthread_cond_init(&c, NULL); int pthread_cond_signal(pthread_cond_t *cond); int pthread_cond_broadcast(pthread_cond_t *cond); pthread_cond_signal() pthread_cond_broadcast() int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex);

37 int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, const struct timespec *abstime); pthread_cond_wait() pthread_cond_timedwait() pthread_cond_t c; pthread_mutex_t m;... pthread_mutex_lock(&m); /* zajęcie zamka */ pthread_cond_wait(&c, &m); /* oczekiwanie na zmiennej warunkowej */ pthread_mutex_unlock(&m); /* zwolnienie zamka */ pthread_cond_signal(&c); /* sygnalizacja zmiennej warunkowej */ pthread_mutex_lock(&m); pthread_cond_signal(&c); pthread_mutex_unlock(&m); sem_init() sem_init() sem_wait() sem_trywait() sem_post() sem_getvalue()

38 sem_destroy() int pthread_cond_signal() pthread_cond_broadcast() bariera()

39 #include <stdio.h> #include <unistd.h> #include <pthread.h> #include <semaphore.h> sem_t s; void* work(void* arg) int id = pthread_self(); int i; for(i=0; i<10; i++) printf( [%d] Czekam...\n, id); sem_wait(&s); printf( [%d] Sekcja krytyczna...\n, id); sleep(1); printf( [%d] Wyjście...\n, id); sem_post(&s); usleep(100000); return NULL; int main() pthread_t th1, th2; sem_init(&s, 0, 1); pthread_create(&th1, NULL, work, NULL); pthread_create(&th2, NULL, work, NULL); pthread_join(th1, NULL); pthread_join(th2, NULL); return 0;

40 # cc -o prg modul_1.c modul_2.c prg.c modul_.c modul_.c prg.c main # cc -c modul_1.c # cc -c modul_2.c # cc -o prg modul_1.o modul_2.o prg.c.o.a tar modul_.c modul_.c # cc -c modul_1.c # cc -c modul_2.c # ar rv libmodul.a modul_1.o modul_2.o # cc -o prg prg.c libmodul.a

41 # cc -shared -o libmodul.so modul_1.c modul_2.c # cc -o prg prg.c -lmodul -L. -L modul ldd # ldd prg linux-gate.so.1 => (0xffffe000) libc.so.6 => /lib/libc.so.6 (0x ) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x ) modul.so =>./modul.so (0x ) #include <stdio.h> #include <stdlib.h> #include <dlfcn.h> int main() void* handle = dlopen( libhello.so, RTLD_LAZY); void (*fun)(); if (handle == NULL) printf( %s\n, dlerror()); exit(1); else fun = dlsym(handle, fun ); (*fun)(); dlclose(handle); return 0; #include <stdio.h> void fun() printf( Hello world\n ); dlopen(3)

42 rand(3) RAND_MAX srand(3) [, ] float f = rand()/(rand_max+1.0); x int x; srand(getpid()); x = *(rand()/(RAND_MAX+1.0)); getpid #include <stdio.h> #include <readline/readline.h> int main() char* line; while ((line=readline( pisz> ))!=NULL) if (*line)

43 printf( %s\n, line); # gcc -o readline-test -lreadline readline-test.c line = readline( > ); add_history(line);

44 # ls -l > out.txt # grep abc < dane.txt # sort < dane.txt > out.txt exit fg bg jobs isatty() #!/home/student/mysh ls -l ps ax > out.txt

45 # ps ax head # ps ax head # ls -l tr a-z A-Z sort -n -k 5,5 # cat < dane.txt tr abc XYZ sort > out.txt echo $1 $2 #!/home/student/mysh ls -l $1 tr -s \t cut -f $2 > X=10 > echo $X 10 > zmienna= Ala ma kota > echo $zmienna Ala ma kota > unset zmienna > echo $zmienna > setenv() = proces.txt

46 proces.txt ps -ax iostat netstat -tn log.txt numbers.txt

47 gcc cc -Wall error: x undeclared (first use in this function) x warning: implicit declaration of function sleep sleep sleep sleep(3) unistd.h #include <unistd.h> warning: no newline at end of file mcedit

48

49

50 add_history dlopen exec perror printf pthread_join rand readline sleep srand toupper alarm close dup2 dup fcntl flock fork ftruncate getpid getppid lseek msgget msgrcv msgsnd open pause pipe read signal socketpair umask waitpid write

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

1. Utwórz blok pamięci współdzielonej korzystając z poniższego kodu: 6 Pamięć współdzielona 6.1 Dostęp do pamięci współdzielonej 1. Utwórz blok pamięci współdzielonej korzystając z poniższego kodu: #include #include #include #include

Bardziej szczegółowo

# echo przykład przykład. echo przykład

# echo przykład przykład. echo przykład # # echo przykład przykład echo przykład fg jobs # sleep 10 # # ls... # jobs [1]+ Stopped sleep 10 # fg,,,,, #include int main() printf( Hello world!\n ); vi mcedit pico jed emacs #

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

Systemy operacyjne II Skrypt do ćwiczeń laboratoryjnych

Systemy operacyjne II Skrypt do ćwiczeń laboratoryjnych Systemy operacyjne II Skrypt do ćwiczeń laboratoryjnych Cezary Sobaniec v1.4 2012-02-16 Politechnika Poznańska Instytut Informatyki Spis treści 1 Wprowadzenie 3 1.1 Organizacja zajęć........................

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

Systemy operacyjne II

Systemy operacyjne II Systemy operacyjne II Skrypt do ćwiczeń laboratoryjnych Cezary Sobaniec 2018-10-10 Politechnika Poznańska Instytut Informatyki Spis treści 1 Wprowadzenie 5 1.1 Organizacja zajęć.................. 5 1.2

Bardziej szczegółowo

Shared memory and messages. Functions. process 0. process 1. program 0. program 0. data 0. data 1. program 1. data 0. data 1.

Shared memory and messages. Functions. process 0. process 1. program 0. program 0. data 0. data 1. program 1. data 0. data 1. Shared memory and messages Shared memory vs message passing Shared memory - C functions Shared memory - example program Message queues - C functions Message queues - example program process 0 process 1

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

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

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

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

POSIX: IEEE Std 1003.1 2001 (Issue 6, 2004 edition)

POSIX: IEEE Std 1003.1 2001 (Issue 6, 2004 edition) POSIX: IEEE Std 1003.1 2001 (Issue 6, 2004 edition) Podstawowe rekomendacje przejęte z UNIXa wielodostęp wielozadaniowość system plików terminal gniazda Rekomendacje dla obszaru czasu rzeczywistego strategie

Bardziej szczegółowo

Semafory, pamięć dzielona i kolejki komunikatów

Semafory, pamięć dzielona i kolejki komunikatów Semafory, pamięć dzielona i kolejki komunikatów 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

Programowanie Współbieżne

Programowanie Współbieżne Programowanie Współbieżne Pthread http://www.unix.org/version2/whatsnew/threadsref.html Oraz strony podręcznika systemowego man 1 Wątki W tradycyjnym modelu w systemie Unix, jeżeli proces wymaga, by część

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

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

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

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

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

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

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

KOLEJKI KOMUNIKATÓW IPC

KOLEJKI KOMUNIKATÓW IPC z przedmiotu, prowadzonych na Wydziale BMiI, Akademii Techniczno-Humanistycznej w Bielsku-Białej. Współbieżność procesów (czy wątków) wiąże się często z potrzebą okresowej (asynchronicznej) wymiany komunikatów.

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

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

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

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

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

Krótki kurs programowania współbieżnego

Krótki kurs programowania współbieżnego Krótki kurs programowania współbieżnego Procesy i sygnały w językach C oraz Python Semafory i pamięć dzielona (język C) Uproszczony semafor z Pythona Inne metody komunikowania urs systemu UNIX 1 Ale najpierw

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

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

4. Komunikacja pomiędzy procesami przez łącza nienazwane i nazwane

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

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

Programowanie w ANSI C z wykorzystaniem funkcji jądra systemu UNIX/Linux

Programowanie w ANSI C z wykorzystaniem funkcji jądra systemu UNIX/Linux 1 Programowanie w ANSI C z wykorzystaniem funkcji jądra systemu UNIX/Linux Programowanie Współbieżne (dawniej Systemy Operacyjne II) Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika

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

Problem producentakonsumenta

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

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2) Wstęp do informatyki stęp do informatyki Polecenia (cz.2) Lista procesów top Pokaż listę procesów polecenie interaktywne Procesy Uruchamianie w tle. shell nie czeka na zakończenie procesu, można wydawać

Bardziej szczegółowo

sposób wykonywania operacji zapisu i odczytu dane odczytywane z l acza usuwane (nie można ich odczytać ponownie),

sposób wykonywania operacji zapisu i odczytu dane odczytywane z l acza usuwane (nie można ich odczytać ponownie), 27 4 L acza L acza w systemie UNIX sa plikami specjalnymi, s luż acymi do komunikacji pomiedzy procesami. L acza maja kilka cech typowych dla plików zwyk lych, czyli posiadaja swój i-weze l, posiadaja

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

Programowanie aplikacji równoległych i rozproszonych. Wykład 1

Programowanie aplikacji równoległych i rozproszonych. Wykład 1 Wykład 1 p. 1/52 Programowanie aplikacji równoległych i rozproszonych Wykład 1 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Plan wykładu

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

Procesy w systemach UNIX i Linux

Procesy w systemach UNIX i Linux SOE Systemy Operacyjne Wykład 5 Procesy w systemach UNIX i Linux dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Procesy Proces wykonujący się program identyfikator PID Procesy

Bardziej szczegółowo

Plan wykładu. Programowanie aplikacji równoległych i rozproszonych. Wykład 1 p. Wzajemne wykluczanie. Procesy współbieżne

Plan wykładu. Programowanie aplikacji równoległych i rozproszonych. Wykład 1 p. Wzajemne wykluczanie. Procesy współbieżne Plan wykładu Programowanie aplikacji równoległych i rozproszonych Wykład 1 Podstawowe pojęcia i model programowania Sposoby realizacji watków w systemach operacyjnych Tworzenie watów i zarzadzanie nimi

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

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

Jędrzej Ułasiewicz Programownie aplikacji współbieżnych str. 1. Wątki

Jędrzej Ułasiewicz Programownie aplikacji współbieżnych str. 1. Wątki Jędrzej Ułasiewicz Programownie aplikacji współbieżnych str. 1 1 Informacje wstępne...2 2 Rodzaje wątków...7 poziomu jądra...7 poziomu użytkownika...8 Rozwiązania mieszane...8 3 Biblioteka pthreads...12

Bardziej szczegółowo

Pamięć współdzielona

Pamięć współdzielona Pamięć współdzielona Systemy Operacyjne 2 Piotr Zierhoffer 17 listopada 2011 Mechanizmy IPC IPC Inter Process Communication kolejki komunikatów, pamięć współdzielona semafory polecenia bash: ipcs, ipcrm

Bardziej szczegółowo

Temat zajęć: Obsługa łączy komunikacyjnych

Temat zajęć: Obsługa łączy komunikacyjnych Temat zajęć: Obsługa łączy komunikacyjnych Czas realizacji zajęć: 180 min. Zakres materiału, jaki zostanie zrealizowany podczas zajęć: I. Łącza komunikacyjne Potoki nienazwane, potoki nazwane, przykłady

Bardziej szczegółowo

UŻYCIE I ZARZĄDZANIE WĄTKAMI

UŻYCIE I ZARZĄDZANIE WĄTKAMI Proces jako pewna instancja programu, w trakcie wykonania, ze swej natury w każdym systemie operacyjnym wyróżniają: prawa własności zasobu a jednym z fundamentalnych zadań systemu jest ochrona przed jednoczesnym

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

UŻYCIE I ZARZĄDZANIE WĄTKAMI

UŻYCIE I ZARZĄDZANIE WĄTKAMI Proces jako pewna instancja programu, w trakcie wykonania, ze swej natury w każdym systemie operacyjnym wyróżniają: prawa własności zasobu a jednym z fundamentalnych zadań systemu jest ochrona przed jednoczesnym

Bardziej szczegółowo

Procesy i potoki. S. Samolej: Procesy

Procesy i potoki. S. Samolej: Procesy Procesy i potoki 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

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

Informatyka. Wy-03 Dynamiczna alokacja pamięci, wyjątki. mgr inż. Krzysztof Kołodziejczyk

Informatyka. Wy-03 Dynamiczna alokacja pamięci, wyjątki. mgr inż. Krzysztof Kołodziejczyk Informatyka Wy-03 Dynamiczna alokacja pamięci, wyjątki mgr inż. Krzysztof Kołodziejczyk krzysztof.m.kolodziejczyk@pwr.edu.pl 13.03.2019 Strona kursu http://w12.pwr.wroc.pl/inf/ Konsultacje Piątek 13:00

Bardziej szczegółowo

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO LABORATORIUM Temat: THREADS SYNCHRONIZATION METHODS Mariusz Rudnicki 2016 1. Wstęp W systemach wielowątkowych wspólne zasoby procesu takie, jak: pamięć: kod programu;

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

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

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

Unix: programowanie z użyciem w atków

Unix: programowanie z użyciem w atków Unix: programowanie z użyciem w atków Witold Paluszyński witold.paluszynski@pwr.wroc.pl http://sequoia.ict.pwr.wroc.pl/ witold/ Copyright c 1999 2006 Witold Paluszyński All rights reserved. Niniejszy dokument

Bardziej szczegółowo

Unix: programowanie z użyciem w atków

Unix: programowanie z użyciem w atków Unix: programowanie z użyciem w atków Witold Paluszyński witold.paluszynski@pwr.wroc.pl http://sequoia.ict.pwr.wroc.pl/ witold/ Copyright c 1999 2006 Witold Paluszyński All rights reserved. Niniejszy dokument

Bardziej szczegółowo

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

Programowanie równoległe w POSIX API. PRiR, wykład 3 Programowanie równoległe w POSIX API PRiR, wykład 3 1 Plan Ogólnie o wsparciu PR Co to jest POSIX POSIX API dla PR Procesy Wątki Komunikacja Przykład 2 Narzędzia wspierające PR System operacyjny efektywne

Bardziej szczegółowo

Temat zajęć: Obsługa systemu plików.

Temat zajęć: Obsługa systemu plików. Temat zajęć: Obsługa systemu plików. Czas realizacji zajęć: 90 min. Zakres materiału, jaki zostanie zrealizowany podczas zajęć: I. Operacje na plikach zwykłych. Tworzenie i otwieranie plików, deskryptory

Bardziej szczegółowo

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.4

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.4 Mariusz Rudnicki mariusz.rudnicki@eti.pg.gda.pl PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.4 Synchronizacja wątków Omawiane zagadnienia Czym jest synchronizacja wątków? W jakim celu stosuje się mechanizmy

Bardziej szczegółowo

Problemy współbieżności

Problemy współbieżności Problemy współbieżności wyścig (race condition) synchronizacja realizowana sprzętowo (np. komputery macierzowe) realizowana programowo (bariera, sekcja krytyczna, operacje atomowe) wzajemne wykluczanie

Bardziej szczegółowo

Podstawy programowania współbieżnego. 1. Wprowadzenie. 2. Podstawowe pojęcia

Podstawy programowania współbieżnego. 1. Wprowadzenie. 2. Podstawowe pojęcia Podstawy programowania współbieżnego Opracowanie: Sławomir Samolej, Tomasz Krzeszowski Politechnika Rzeszowska, Katedra Informatyki i Automatyki, Rzeszów, 2010 1. Wprowadzenie Programowanie współbieżne

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

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

Mariusz Rudnicki PROGRAMOWANIE WSPÓŁBIEŻNE I SYSTEMY CZASU RZECZYWISTEGO CZ.4

Mariusz Rudnicki PROGRAMOWANIE WSPÓŁBIEŻNE I SYSTEMY CZASU RZECZYWISTEGO CZ.4 Mariusz Rudnicki mariusz.rudnicki@eti.pg.gda.pl PROGRAMOWANIE WSPÓŁBIEŻNE I SYSTEMY CZASU RZECZYWISTEGO CZ.4 Synchronizacja wątków Omawiane zagadnienia Czym jest synchronizacja wątków? W jakim celu stosuje

Bardziej szczegółowo

Wątki. S. Samolej: Wątki 1

Wątki. S. Samolej: Wątki 1 Wątki 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

Tworzenie wątków. #include <pthread.h> pthread_t thread;

Tworzenie wątków. #include <pthread.h> pthread_t thread; Wątki Wątek (ang, thread) jest to niezależna sekwencja zdarzeń w obrębie procesu. Podczas wykonywania procesu równolegle i niezależnie od siebie może być wykonywanych wiele wątków. Każdy wątek jest wykonywany

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

Uzupełnienie dot. przekazywania argumentów

Uzupełnienie dot. przekazywania argumentów Uzupełnienie dot. przekazywania argumentów #include #include struct nowa { int f; char line[20000]; int k; } reprezentant; int main() { void funkcja7( struct nowa x); reprezentant.k=17;

Bardziej szczegółowo

Dariusz Wawrzyniak 11 maja 2001

Dariusz Wawrzyniak 11 maja 2001 Funkcje jadra systemu operacyjnego UNIX w przyk ladach Dariusz Wawrzyniak darek@cs.put.poznan.pl 11 maja 2001 1 Pliki 1.1 Operacje na plikach zwyk lych Jadro systemu operacyjnego UNIX udostepnia dwie podstawowe

Bardziej szczegółowo

Dariusz Wawrzyniak 5 kwietnia 2001

Dariusz Wawrzyniak 5 kwietnia 2001 Funkcje jadra systemu operacyjnego UNIX w przyk ladach Dariusz Wawrzyniak darek@cs.put.poznan.pl 5 kwietnia 2001 1 Pliki 1.1 Operacje na plikach zwyk lych Jadro systemu operacyjnego UNIX udostepnia dwie

Bardziej szczegółowo

UNIX - KOLOKWIUM 3. #include <stdio.h> #include <unistd.h>

UNIX - KOLOKWIUM 3. #include <stdio.h> #include <unistd.h> UNIX - KOLOKWIUM 3 1. Napisać program w języku C, który wypisze ilość i listę swoich argumentów oraz zmienne środowiskowe. printf("ilosc argumentow: %d\n", argc); for(i = 0; i < argc; i++) printf("argument

Bardziej szczegółowo

Plan wykładu. Obliczenia równoległe w zagadnieniach inżynierskich. Wykład 1 p. Wzajemne wykluczanie. Procesy współbieżne

Plan wykładu. Obliczenia równoległe w zagadnieniach inżynierskich. Wykład 1 p. Wzajemne wykluczanie. Procesy współbieżne Plan wykładu Obliczenia równoległe w zagadnieniach inżynierskich Wykład 1 Podstawowe pojęcia i model programowania Sposoby realizacji watków w systemach operacyjnych Tworzenie watów i zarzadzanie nimi

Bardziej szczegółowo

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Bash - wprowadzenie. Bash - wprowadzenie 1/39 Bash - wprowadzenie Bash - wprowadzenie 1/39 Bash - wprowadzenie 2/39 Czym jest bash? Rysunek : Zadanie powłoki to ukrycie wywołań systemowych Bash - wprowadzenie 3/39 Czym jest bash? Przykład polecenia:

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

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania Przemysłowe układy sterowania PID Układy regulacji PID w strukturze sprzętowej Pytania i zadania do zajęć

Bardziej szczegółowo

5. Algorytmy serwera

5. Algorytmy serwera 5. Algorytmy serwera 5.1. Typy serwerów Serwer iteracyjny (ang. iterative server) obsługuje zgłoszenia klientów sekwencyjnie, jedno po drugim. Serwer współbieżny (ang. concurrent server) obsługuje wiele

Bardziej szczegółowo

<stdio.h> <iostram> input. FILE *stdin. std::cin output. std::cout error. FILE *stdout. FILE *stderr

<stdio.h> <iostram> input. FILE *stdin. std::cin output. std::cout error. FILE *stdout. FILE *stderr z przedmiotu, prowadzonych na Wydziale BMiI, Akademii Techniczno-Humanistycznej w Bielsku-Białej. Rodzina systemów POSIX zaopatrzona została w mechanizm tworzenie międzyprocesowych łączy komunikacyjnych

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

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

Wstęp do Programowania, laboratorium 02

Wstęp do Programowania, laboratorium 02 Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite

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

Informacje o procesach czyli polecenie "ps".

Informacje o procesach czyli polecenie ps. nformacje o procesach czyli polecenie ps Konsola xterm tty tty Konsola xterm ash ps t tty o pidppidcmd sleep D D D ash ash 2 sleep sleep pid=2 ppid= ps t tty o pidppidcmd ash ash które procesy pid= pid=

Bardziej szczegółowo

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)

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

3 Przygotował: mgr inż. Maciej Lasota

3 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 3 1/8 Język C Instrukcja laboratoryjna Temat: Instrukcje warunkowe, pętle. 3 Przygotował: mgr inż. Maciej Lasota 1) Instrukcje warunkowe. Instrukcje warunkowe pozwalają zdefiniować warianty

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

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej 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, rok

Bardziej szczegółowo

ZAJECIA Z SYSTEMÓW OPERACYJNYCH 2 (Programowanie): funkcje POSIX

ZAJECIA Z SYSTEMÓW OPERACYJNYCH 2 (Programowanie): funkcje POSIX ZAJECIA Z SYSTEMÓW OPERACYJNYCH 2 (Programowanie): funkcje POSIX Author: Arkadiusz D. Danilecki Version: 1.1 Date: 14.12.2013 Wstęp Niniejsze opracowanie zawiera jedynie podstawowe informacje o funkcjach

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

dynamiczny przydział pamięci calloc() memset() memcpy( ) (wskaźniki!! )

dynamiczny przydział pamięci calloc() memset() memcpy( ) (wskaźniki!! ) dynamiczny przydział pamięci malloc() free() realloc() calloc() memset() memcpy( ) mempcpy( ) memmove() (wskaźniki!! ) 1 dynamiczny przydział pamięci void * memccpy (void * to, void * from, int c, int

Bardziej szczegółowo

Kolejki FIFO (łącza nazwane)

Kolejki FIFO (łącza nazwane) Kolejki FIFO (łącza nazwane) Systemy Operacyjne 2 laboratorium Mateusz Hołenko 6 listopada 2011 Plan zajęć 1 Łącza w systemie Linux kolejki FIFO vs. potoki specyfika łączy nazwanych schemat komunikacji

Bardziej szczegółowo

Operacje powiązane z systemem:

Operacje powiązane z systemem: PLIKI Operacje powiązane z systemem: funkcje biblioteczne stand. biblioteki C, libc; wykonywane jak wywołania innych funkcji; mogą wywoływać inne funkcje lub wywołania systemowe) wywołania systemowe zaimplementowane

Bardziej szczegółowo

Gniazda BSD. komunikacja bezpołączeniowa

Gniazda BSD. komunikacja bezpołączeniowa Gniazda BSD komunikacja bezpołączeniowa Użycie gniazd w transmisji bezpołączeniowej socket() socket() bind() bind() STOP! recv() żądanie send() send() odpowiedź recv() STOP! recvfrom() #include

Bardziej szczegółowo

Struktury. Przykład W8_1

Struktury. Przykład W8_1 Struktury Struktury pozwalają na grupowanie zmiennych różnych typów pod wspólną nazwą. To istotnie ułatwia organizacje danych, które okazują się w jednym miejscu kodu programu. To jest bardzo ważne dla

Bardziej szczegółowo