본문 바로가기

Linux5

[Linux] thread programming, mutex lock, semaphore in thread programming # 13주차 1214 강의 요약 ## Thread 프로세스: 서로 독립적인 메모리로 할당 쓰레드: 한 프로그램 내에서 독립적으로 실행하고 싶을 때 만들 수 있음 리눅스에서는 쓰레드 프로그램을 어떻게 하는가? ### p1.c #include #include #include // 독립적으로 수행해야 하는 함수의 형식은 이런 형식이어야 한다 -> void * 형식이어야 한다 void *func(void *arg){ int i; for(i=0; i n이 매우 커지면 시간이 오래 걸림 #include #include #include int isPrime(int n){ for(int i=2; i 2022. 12. 13.
[Linux] semaphore # 12주차 1206 강의 요약 IPC: 프로세스들 사이에 서로 데이터를 주고 받는 행위 또는 그에 대한 방법이나 경로 IPC(Inter-Process Communication) 두 가지 방법 1. message queue 2. shared memory ### shminit.c // shared memory를 하나 만들어서 초기화시키는 프로그램 #include #include #include #include int main(){ key_t key; int shmid; int *shmaddr; key=100; // 두 프로세스 간의 고유한 key를 공유해야 한다 shmid=shmget(key,sizeof(int), IPC_CREAT | 0666); // 100이라는 key로 만들어진 shared memor.. 2022. 12. 12.
[Linux] message queue, shared memory # 11장 1122 강의 요약 중간고사 마지막 문제 풀이 [semaphore] barrier n개의 프로세스가 실행될때 barrier가 호출될때까지 기다렸다가 수행 병렬 프로그램, 분산 시스템에서 필요한 시스템 barrier라는 동기화 도구 -> signal handler를 사용하여 구현하라 각 프로그램은 pid를 모두 안다고 가정 도착하면 나 도착했다를 다른 사람들에게 알려야 한다 SIGUSR를 보내서 알려야 한다 도착한 시그널의 갯수가 n-1개가 안되면 계속 기다리는 .. ### sigtest.c #include #include int cnt =0; int pnum; int pids[10]; void my_sig_handler(int signum){ //printf(“signum = %d \n”, s.. 2022. 12. 12.
[Linux] fork, pipe, mkfifo # 10장 1108강의 요약 ## sort ### bash shell a.txt sort b.txt : ls -al 의 결과를 b.txt파일에 저장 ls -al /usr/include/ | more ls -al | more ls -al의 결과를 두번째 명령어인 more의 input으로 more: page단위로 보기 ### a.c #include int main(){ char buf1[100]; while (gets(buf1)!=NULL){ printf("[kyung] %s \n", buf1); } } ### bash shell gcc a.c -o a.out ./a.out ls | ./a.out 2개의 프로세스가 생김 l.. 2022. 12. 11.