티스토리 뷰

목차



    1. 프로세스

    프로세스는 실행중인 프로그램을 말한다. 운영체제는 프로그램을 실행하기 위해서 이 프로세스를 생성하게 된다.
    운영체제의 프로세스 관련 정보는 다음과 같다.

    - 프로세스 상태(process state) : 프로세스가 실행중인지, 준비(ready)상태인지, 이벤트를 기다리고 있는지, 중단(suspend)된 상태인지 확인 가능하다.

    - 프로그램 카운터(program counter) : 다음에 실행될 명령어의 주소다.

    - 프로세서 레지스터 값 : 프로세스가 CPU의 사용 권한을 얻을 때 프로세스를 restore한다.

    - 메모리 관리 정보 : 페이지 테이블, 파일 기술자(descriptor), I/O request 등의 정보를 포함한다.


    2. 스레드

    스레드는 프로세스 내의 실행 유닛을 말한다. 스레드는 프로세스에 비해서 빨리 생성 될 수 있고, 다른 스레드와의 통신에 오버헤드가 작기 때문에 parallel programming 에서 스레드를 사용하는것이 더 효율적이다.


    3. 프로세스와 스레드

    프로세스는 하나 이상의 스레드를 포함한다. 프로그램이 실행되면 주 스레드(main-thread)가 프로그램의 main 함수를 실행한다. 주 스레드는 프로그램 내의 다른 함수를 실행하는 부 스레드(sub-thread)를 생성할 수 있다.
    그리고 프로세스 내의 여러 스레드는 스레드 별로 프로그램 카운터, 프로세서 레지스터, 스택을 따로 갖는다. 반면에 스레드는 코드나 주소공간 같은 프로세스의 자원을 다른 스레드와 공유해서 사용한다. 즉, 같은 프로세스 내의 스레드는 항상 주소 공간을 공유한다.

    반응형