Notice
Recent Posts
관리 메뉴

Hacking Arts

프로세스(Process)와 스레드(Thread) 본문

Computer & ETC/OS

프로세스(Process)와 스레드(Thread)

Rakehell 2014. 9. 26. 01:48

1.프로세스(Process)

-프로세스란 실행 중인 프로그램을 뜻한다.

-디스크에 존재하는 프로그램이 메모리에 올라가게 되면 프로세스라고 불리어진다.

-프로세스는 메모리에서 고유의 공간을 할당받아 cpu에서 명령어가 한줄씩 실행되게 된다.

-프로세스는 태스크(Task)라고도 부른다.

-Window같이 멀티태스킹 지원하는 운영체제에서는 동시에 실행되고 있는 여러개의 프로세스에 대하여 cpu와 메모리 자원을 안정되게 분배해 주어야 한다.


(1)자원 소유의 단위 : 각각의 프로세스는 자신의 실행 이미지 로드와 실행에 필요한 추가적인 메모리 공간을 가지고 있어야 할 것이며, 이들 각 프로세스 마다 자신의 영역을 보호하고 다른 영역의 프로세스가 자신의 자원을 수정 읽기 삭제가 불가능 하게 되어야한다. 그리고 각 프로세스마다 접근하는 파일이나 i/o장치들에 대해서 프로세서 단위로 할당받아 관리된다.

(2)디스패칭의 단위 : 프로세스는 하나의 프로그램이 운영체제로부터 cpu의 자원을 일정 기간동안 할당받아 명령어를 실행하는 것이며, 운영체제는 여러 개의 프로세스가 병렬적으로 실행되게 하기위해서 cpu의 사용 시간을 각각의 프로세스에 골고루 나누어 주어야 한다.


-위는 하나의 프로세스에서 하나의 디스패칭 단위가 실행되어질 경우이며, Windows와 같은 최근의 운영체제는 효율적인 멀티캐스킹을 위하여 하나의 프로세스에서 여러 개의 디스패칭 단위가 실행될 수 있도록 하고 있으며, 이러한 디스패칭 단위를 스레드라 한다.


2.스레드(Thread)

-스레드란 실제적으로 명령어 cpu를 사용하여 실행되어지는 객체의 단위이며, windows 운영체제는 하나의 프로세스에서 여러개의 스레드가 실행될 수 있도록 하고 있으며, 이러한 스레드는 같은 프로세스에 있는 자원과 상태를 공유하게 된다.

-프로세스내 있는 스레드는 같은 주소 공간에 존재하게 되며 동일한 데이터에 접근할 수 있고 하나의 스레드가 수정한 메모리는 같은 메모리를 참조하는 스레드에 영향을 미치게 되며 하나의 스레드에서 오픈한 파일을 다른 스레드가 사용가능하다.

-스레드가 멀티로 동작하게 되면서 가능한 것으로는 MS워드 같은 프로그램이 실행하면 입력을 받으면서 동시에 맞춤법을 검사하는 그런 행위를 하는 것을 들 수 있다.




-참조

http://itbrain.tistory.com/m/post/106

http://boanin.tistory.com/84

'Computer & ETC > OS' 카테고리의 다른 글

프로세스(Process)와 스레드(Thread) - 2  (0) 2014.10.02