# echo przykład przykład. echo przykład
|
|
- Piotr Dudek
- 7 lat temu
- Przeglądów:
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 close(fd);
9 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 setlocale(lc_all, pl_pl.utf-8 );
10 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 #./baza dane.db r A
12 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 IPC_NOWAIT 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()
37 int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex); 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); int pthread_cond_signal() pthread_cond_broadcast() bariera()
38 MAP_PRIVATE MAP_SHARED MAP_PRIVATE MAP_SHARED exec() fork() MAP_PRIVATE MAP_SHARED /dev/zero
39 MAP_PRIVATE malloc() /proc/ PID/maps mmap(2) void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset); MAP_FAILED struct stat sb; int fd = open( a.txt, O_RDWR); fstat(fd, &sb); void *ptr = mmap(null, sb.st_size, PROT_READ PROT_WRITE, MAP_SHARED, fd, 0); if (ptr == MAP_FAILED) perror( mmap ); ftruncate(2) fallocate(2) ftruncate() fallocate() fd = open( dane.txt, O_CREAT O_RDWR); ftruncate(fd, 0); fallocate(fd, 0, 0, 4096); munmap(2) int length = 4096; void *ptr = mmap(null, length, PROT_READ, MAP_SHARED, fd, 0);... munmap(ptr, length); msync(2) msync(ptr, length, MS_SYNC); msync(ptr, length, MS_ASYNC); fdatasync(fd); // or fsync(fd) fdatasync(2) msync(ptr, length, MS_INVALIDATE);
40 mprotect(2) mlock(2) mlockall(2) madvice(2) PROT_NONE PROT_READ PROT_WRITE
41 ls rm ipcs ipcrm open(2) int fd = shm_open( /mymem, O_CREAT O_RDWR, 0600); /nazwa /dev/shm open(2) O_CREAT O_EXCL O_TRUNC ftruncate(2) ftruncate(fd, 4096); /dev/shm shm_unlink(2)
42 shm_unlink( /mymem ); sem_init() sem_wait() sem_trywait() sem_post() sem_getvalue() sem_destroy() sem_init() # gcc sem-test.c -lpthread sem_t *s; s = mmap(null, sizeof(sem_t), PROT_READ PROT_WRITE, MAP_SHARED MAP_ANONYMOUS, -1, 0); if (s == MAP_FAILED) perror( mmap ); sem_init(s, 1, 1); sem_wait(s); sem_t *s = sem_open( /mysem, O_CREAT, 0600, 1); if (s==sem_failed) perror( sem_open );
43 #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;
44 sem_t /dev/shm sem.mysem sem_close(s); sem_unlink( /mysem ); mq_open(2) mq_attr mq_send(2) mq_receive(2) NULL unlink() mq_unlink( /kolejka );
45 #include <stdio.h> #include <fcntl.h> #include <string.h> #include <mqueue.h> int main(int argc, char *argv[]) mqd_t mq; struct mq_attr attr; attr.mq_flags = 0; attr.mq_maxmsg = 10; attr.mq_msgsize = 1024; mq = mq_open(argv[1], O_RDWR O_CREAT, 0600, &attr); if (mq==-1) perror( mq_open ); if (argc>2) mq_send(mq, argv[2], strlen(argv[2])+1, atoi(argv[3])); else char str[1024]; int prio; mq_receive(mq, str, 1024, &prio); printf( %d: %s\n, prio, str);
46 # ls /dev/mqueue kolejka # cat /dev/mqueue/kolejka QSIZE:55 NOTIFY:0 SIGNO:0 NOTIFY_PID:0 # rm /dev/mqueue/kolejka mq_receive() struct sigevent ev; ev.sigev_notify = SIGEV_SIGNAL; ev.sigev_signo = SIGUSR1; mq_notify(mq, &ev); void handler(union sigval sv) mqd_t mq = *((mqd_t*)sv.sival_ptr); struct sigevent ev; mqd_t mq = mq_open(...); ev.sigev_notify = SIGEV_THREAD; ev.sigev_notify_function = handler; ev.sigev_notify_attributes = NULL; ev.sigev_value.sival_ptr = &mq; mq_notify(mq, &ev); mqd_t
47 # 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
48 # 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)
49 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)
50 printf( %s\n, line); # gcc -o readline-test -lreadline readline-test.c line = readline( > ); add_history(line);
51 # 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
52 # 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
53 proces.txt ps -ax iostat netstat -tn log.txt numbers.txt
54 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
55
56
57 add_history dlopen exec perror printf pthread_join rand readline sleep srand toupper alarm close dup2 dup fallocate fcntl fdatasync flock fork ftruncate getpid getppid lseek madvice mlockall mlock mmap mprotect mq_open mq_receive mq_send msgget msgrcv msgsnd msync munmap open pause pipe read sem_destroy sem_getvalue sem_init sem_open sem_post sem_trywait sem_wait shm_open shm_unlink signal socketpair umask waitpid write
# 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ółowo1. 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ółowo1. 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ółowoSystemy 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ółowoSystemy 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ółowow 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ółowoPOSIX: 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ółowoObsł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ółowoObsł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ółowoShared 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ółowoSemafory, 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ółowoProgramowanie 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 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ółowoProcesy. 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ółowoZAJECIA 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ółowoKolejki komunikatów POSIX
Jędrzej Ułasiewicz IIAiR Politechnika Wrocławska 1 Kolejki komunikatów POSIX 1 Wstęp Kolejka komunikatów Q posiada następujące własności: - Posiada określoną pojemność N komunikatów (długość bufora komunikatów).
Bardziej szczegółowoJ. 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ółowoRys. 9-1 Procesy P1 i P2 komunikuję się poprzez wspólny obszar. pamięci.
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ółowo4.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ółowo1. Kolejki komunikatów POSIX
Jędrzej Ułasiewicz IIAiR Politechnika Wrocławska 1 1. Kolejki komunikatów POSIX 1.1 Podstawowe własności Kolejki FIFO maja następujące wady: Komunikaty pozbawione struktury Nie można testować stanu kolejki
Bardziej szczegółowoJ. Ułasiewicz Programowanie aplikacji współbieżnych 1
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 9. Komunikacja przez pamięć dzieloną Pamięć wirtualna Procesy nie adresują bezpośrednio pamięci fizycznej. Zamiast tego system operacyjny przydziela
Bardziej szczegółowo13. Kolejki komunikatów POSIX
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 13. POSIX 13.1 Wstęp (mailboxy, bufory) są bardzo popularnym mechanizmem komunikacji międzyprocesowej. Występują w prawie każdym systemie operacyjnym.
Bardziej szczegółowoProcesy, 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ółowoJ. Ułasiewicz Programowanie aplikacji współbieżnych 1
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 9. Komunikacja przez pamięć dzieloną Pamięć wirtualna Procesy nie adresują bezpośrednio pamięci fizycznej. Zamiast tego system operacyjny przydziela
Bardziej szczegółowoProcesy. 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ółowoLaboratorium 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ółowoSygnał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ółowoProblem 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ółowoKOLEJKI 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ółowoKró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ółowo10. Synchronizacja użycia zasobów, Semafory Problem producenta i konsumenta
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 10. użycia zasobów, Semafory 10.1 Problem producenta i konsumenta Zagadnienie kontroli użycia jednostek zasobu W systemie istnieje pula N jednostek
Bardziej szczegółowoprocesy 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ółowo1. Kolejki komunikatów POSIX
Jędrzej Ułasiewicz IIAiR Politechnika Wrocławska 1 1. Kolejki komunikatów POSIX 1.1 Podstawowe własności Kolejki FIFO maja następujące wady: Komunikaty pozbawione struktury Nie można testować stanu kolejki
Bardziej szczegółowo10. Synchronizacja użycia zasobów, Semafory
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 10. użycia zasobów, Semafory 10.1 Problem producenta i konsumenta Zagadnienie kontroli użycia jednostek zasobu W systemie istnieje pula N jednostek
Bardziej szczegółowoTemat 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ółowoPROGRAMOWANIE 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ółowoSYSTEMY 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ółowoInstytut 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ółowoPoniż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ółowoJ. 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ółowoUnix: 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ółowoUnix: 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ółowoPliki. 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ółowoUŻ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ółowoPobieranie 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ółowoPamięć dzielona i kolejki komunikatów
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ółowoProgramowanie 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ółowoUŻ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Łą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ółowo10. Synchronizacja użycia zasobów, Semafory
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 10. użycia zasobów, Semafory 10.1 Problem producenta i konsumenta Zagadnienie kontroli użycia jednostek zasobu W systemie istnieje pula N jednostek
Bardziej szczegółowoFunkcje 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ółowoTemat 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ółowoProgramowanie 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ółowoMariusz 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ółowoTemat 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ółowoJ. 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ółowoTworzenie 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ółowoPlan 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ółowoMariusz 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ółowoProcesy 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ółowoFunkcje 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ółowoWą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ółowo10. Synchronizacja użycia zasobów, Semafory
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 10. użycia zasobów, Semafory 10.1 Problem producenta i konsumenta Zagadnienie kontroli użycia jednostek zasobu W systemie istnieje pula N jednostek
Bardziej szczegółowo1. Timery i zdarzenia
Sygnały 1 1. Timery i zdarzenia 1.1 Funkcje i programowanie timerów Jedną z najczęściej spotykanych funkcji systemu jest generowanie zdarzeń które w ustalonym czasie uruchomić mają określone akcje systemu.
Bardziej szczegółowoTemat 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ółowo2. 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ółowoProgramowanie 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ółowoProgramowanie 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ółowo4. 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ółowoWielowątkowy serwer TCP
Wielowątkowy serwer TCP Wątek współbieżne działanie współdzielenie danych wykonywanie tego samego programu tańsze tworzenie w porównaniu do fork() join(), a detach() pthread - interesujące fragmenty pthread_create(),
Bardziej szczegółowoPliki, potoki, sygnały
Pliki, potoki, sygnały 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ółowoFunkcje 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ółowoGniazda 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ółowoPROGRAMOWANIE 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ółowoProcesy 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ółowosposó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ółowoProgramowanie 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ółowoOperacje 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ółowoJą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ółowoFunkcje 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ółowoProgramowanie w systemie Linux. Jacek Lach Zakład Oprogramowania Instytut Informatyki Politechnika Śląska
Programowanie w systemie Linux Jacek Lach Zakład Oprogramowania Instytut Informatyki Politechnika Śląska Plan Biblioteki Narzędzia pomocnicze Biblioteki statyczne Biblioteki dynamiczne Interfejs dynamicznego
Bardziej szczegółowoLaboratorium 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ółowodynamiczny 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<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ółowoPlan 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ółowoProgramowanie w systemie UNIX
Programowanie w systemie UNIX CELE: dr inż. Paweł TURCZA Celem przedmiotu jest zapoznanie studenta z metodami i narzędziami wykorzystywanymi w tworzeniu oprogramowania dla systemów UNIX i Linux. Program:
Bardziej szczegółowoProgramowanie 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ółowoZaawansowane operacje wejścia/wyjścia
Zaawansowane operacje wejścia/wyjścia Witold Paluszyński witold.paluszynski@pwr.wroc.pl http://sequoia.ict.pwr.wroc.pl/ witold/ Copyright c 2002 2003 Witold Paluszyński All rights reserved. Niniejszy dokument
Bardziej szczegółowoKró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ółowoModel 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ółowoUzupeł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ółowoInformatyka. 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ółowoWątki, sygnały i szeregowanie w systemach UNIX, Linux
SOE Systemy Operacyjne Wykład 6 Wątki, sygnały i szeregowanie w systemach UNIX, Linux dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Wątki w systemie Solaris Modele implementacji
Bardziej szczegółowoSUMA 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ółowoPamięć 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ółowoWstę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ółowoWątki. S. Samolej: Wątki, producent - konsument 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ółowoKomunikacja mi edzyprocesowa (IPC)
Komunikacja miedzyprocesowa (IPC) Procesy tworzone w ramach systemu operacyjnego moga sie komunikować. Jeżeli duża aplikacja jest budowana z wielu wspó lpracuj acych procesów, to ta komunikacja może być
Bardziej szczegółowoZaawansowane operacje wejścia/wyjścia
Zaawansowane operacje wejścia/wyjścia Witold Paluszyński witold.paluszynski@pwr.edu.pl http://www.kcir.pwr.edu.pl/ witold/ Copyright c 2002 2003 Witold Paluszyński All rights reserved. Niniejszy dokument
Bardziej szczegółowoZaawansowane operacje wejścia/wyjścia
Zaawansowane operacje wejścia/wyjścia Witold Paluszyński witold.paluszynski@pwr.edu.pl http://www.kcir.pwr.edu.pl/ witold/ Copyright c 2002 2003 Witold Paluszyński All rights reserved. Blokowanie operacji
Bardziej szczegółowo