• OS,  Study

    [OS] Process Synchronization

    1. Introduction Multi-processing, multi-core, multi-threading과 같이 다수의 주체가 공유하고 있는 자원을 접근 할 때 synchronization을 하지 않으면 우리가 의도하지 않는 동작이 system에서 발생할 수 있다. 1.1 Critical section Critical section은 오직 하나의 process만이…

  • Linux,  Programming

    [Linux] Pthread 개념 (pthread_create / pthread_join / pthread_exit)

    Thread는 process와 다르게 thread 끼리는 서로 메모리를 공유한다. (물론 process간 메모리를 공유하는 부분이 있다.) 특히 global variable을 thread간은 공유하며, process간은 공유하지 않는다. 또한 local variable은 process간 모두 공유하지 않고 thread는 공유한다. Linux에선 pthread_create()…

  • OS,  Study

    [OS] Daemon Process

    어떤 event가 발생할 때까지 기다리거나, 주기적으로 주어진 일을 수행하기 위해 background에 있는 process를 말한다. 특징은 다음과 같다. 제어 터미널을 가지지 않으며 background에서 수행 보통 system 부팅이 될 때 시작되며 shutdown 될 때 종료…

  • Linux,  Programming

    [Linux] exec 계열 함수

    exec 계열 함수들은 현재의 프로세스 이미지를 새로운 프로세스 이미지로 덮어쓴다. exec 계열 함수들은 library 함수로 구성된다.exec 계열 함수를 통해서 fork()로 child process를 만든 뒤 독립적인 process로 만들어주는 역할을 한다. 각 exec 함수들은 argument를…

  • Linux,  Programming

    [Linux] wait() System Call 함수

    자식 프로세스 작업이 끝날 때 까지 대기하며, 자식 프로세스가 종료한 상태를 구한다. wait()함수를 실행하면 자식 프로세스가 종료될 때까지 대기한다. 만일 자식 프로세스가 정상 종료하여, main()에서 return 으로 값을 반환하거나, 또는 exit()로 값을 반환하며…

  • OS,  Study

    [OS] fork: Process 생성 및 종료

    Linux에서 fork()는 자식 process를 생성하는데 쓰이는 system call 함수다. Argument Description void – Return Description 0 Child process인 경우 0보다 큰 경우 Parent process인 경우 -1 비정상적 종료가 발생한 경우 위 코드를 수행하게…

  • Linux,  Programming

    [Linux] 명령어 Option 추출 함수 (getopt)

    프로그램을 작성 할 때 option 활용은 많이 요구된다. 이 때 linux에선 이를 위한 함수를 제공한다. getopt 해당 함수는 “-“가 붙은 option에 대해서만 추출해준다. Return Description -1 외 다른 값 getopt 인자로 넣은 option에…

  • Linux,  Programming

    [Linux] fseek / ftell 함수

    파일을 읽을 때 파일 구조체 내부엔 포인터가 존재하며, 해당 포인터를 옮기는 작업이 중요하다. fseek 파일을 읽기/쓰기 동작을 할 때 포인터의 위치를 변화시킨다. int fseek(FILE *stream, long offset, int whence); Option Description SEEK_SET 파일의…