2018년 5월 25일 금요일

(미흡)리눅스에서 태스크, 프로레스, 스레드

커널 레벨에서는 모든 실행 흐름을 태스크(Task)로 정의하고 다룬다.
유저 레벨에서는 기준에 따라 프로세스, 스레드로 나누어 생각할 수 있다.

fork()는 부모프로세스(fork()를 호출한 프로세스)의 메모리상태와 레지스터상태를 그대로 copy-on-write 방식으로 복사하여 자식프로세스를 만든다.(copy-on-wirte방식은 최근에 개선된 fork()의 기능이다.)
반면에 스레드로 생성된 프로세스는 스택을 제외 하고 부모 프로세스와 상당부분을 공유하므로, 생성 속도가 fork에 비해서 빠르다.

*context : 태스크의 실행흐름과 관련있는 레지스터값의 집합

댓글 없음:

댓글 쓰기