Presentation is loading. Please wait.

Presentation is loading. Please wait.

2. 프로세스 관리 프로세스 중단과 재시작 중단과 재시작을 추가한 프로세스 상태 변화

Similar presentations


Presentation on theme: "2. 프로세스 관리 프로세스 중단과 재시작 중단과 재시작을 추가한 프로세스 상태 변화"— Presentation transcript:

1 2. 프로세스 관리 프로세스 중단과 재시작 중단과 재시작을 추가한 프로세스 상태 변화
[그림3-10] 중단과 재시작을 추가한 프로세스 상태 변화 중단과 재시작을 추가한 프로세스 상태 변화 - 중단 : 프로세스 자신 또는 다른 프로세스에 의해 가능. - 단일 처리 시스템 : 프로세스 자신이 중단시켜야 함. - 다중 처리 시스템 : 다른 프로세서에 의해서도 가능하지만, 다른 프로 세서가 재시작 시켜주기 전엔 실행 불가능. 1

2 2. 프로세스 관리 프로세스 우선 순위 변경 프로세스 제어 블록의 우선 순위 값 변경 가능.
프로세스 스케줄러는 준비 리스트의 우선 순위를 이용해 프로세스를 처리. 준비 리스트의 프로세스는 프로세서 중심 프로세스(낮은 우선 순위)와 입출력 중심 프로세 스(높은 우선 순위)로 구분. - 우선 순위가 낮은 프로세스 : 시간 할당량을 크게 제공. - 우선 순위가 높은 프로세스 : 시간 할당량을 적게 제공. 입출력 프로세스 - 높은 우선 순위 : 속도가 느리면서 빠른 응답을 요구하는 단말기 입출력 프로세스. - 낮은 우선 순위 : 속도가 빠른 디스크 입출력 프로세스. ※ 입출력 중심의 프로세스는 프로세서를 자주 짧게 사용하고 프로세서 중심 프로세스는 프로세서 사용 횟수는 적으나 한번에 오래 사용하게 하여 균형을 유지함. 할당 시간을 초과(Timeout)할 경우 프로세스 실행 상태에서 준비 상태로 변경.

3 2. 프로세스 관리 문맥교환 (Context Switching) 인터럽트(Interrupt) 트랩(Trap)
현재 실행되는 프로세스와 별도로 외부에서 발생되는 여러 종류의 이벤트(입출력 동작의 종료 등)에 의해 발생. 제어가 인터럽트 처리 루틴으로 넘어간 후에도 기본 시스템 관리 작업을 처리하고 인터럽 트 형태에 따라 관련된 운영체제 루틴으로 분기. 대표적인 인터럽트 예 - 입출력 인터럽트 : 입출력 동작이 발생한 사실을 확인 후 이벤트를 기다리는 프로세스를 준비 상태로 변경하고 실행할 프로세스를 결정. - 클록 인터럽트 : 현재 실행 중인 프로세스의 할당 시간을 조사하여 실행 중인 프로세스를 준비 상태로 변경, 다른 프로세스를 디스패치하여 실행 상태로 변경. 트랩(Trap) 부적절한 파일 접근 또는 현재 실행 중인 프로세스에 의해 발생되는 오류나 예외 상황으로 인해 발생.

4 2. 프로세스 관리 프로세스 교환 실행 중인 프로세스가 인터럽트되면 운영체제가 다른 프로세스를 실행 상태로 변경, 해당 프로세스에 제어를 넘겨주는 과정에서 실행 중인 프로세스로부터 제어를 인수한 운영체제 가 또 다른 프로세스에 제어를 넘겨주기 위해 발생. - 인터럽트 처리 루틴을 실행한 후 현재 실행 중인 프로세스가 재실행될 수 있으므로 대부분의 운영체제는 프로세스 교환으로 인터럽트가 발생하지 않음. - 트랩은 시스템이 치명적인 오류인지를 판단하여 치명적 오류일 경우 프로세스를 종료하면서 프로세스 교환이 발생. 문맥 교환 프로세스를 다른 프로세스로 교환하기 위해 이전 프로세스의 상태 레지스터 내용을 보관하고 다른 프로세스의 레지스터를 적재하는 일련의 과정. - 프로세스가 “준비→실행”, “실행→준비”, “실행→대기”상태로 변할 때 발생. - 오버헤드가 발생하며 오버헤드는 메모리 속도, 레지스터 수, 특수 명령어의 존재에 따라 다르므로 시스템마다 다름.

5 2. 프로세스 관리 문맥 교환 실행상태에 있는 프로세스가 완료되지 않았는데, 입출력 요구(I/O요구) 발생 시 대기 (Block)상태로 전환. 그때까지 처리한 결과를 PCB에 기록. 현재까지 실행된 프로세스의 여러 상태를 PCB에 저장을 해야 다시 실행 시 PCB에 있는 내용을 보고 이어서 재수행 가능. [그림3-11] 문맥 교환 과정 5

6 3. 스레드 스레드 개요 프로세스에서 실행 제어만 분리한 실행 단위.
경량 프로세스(LWP, Light Weight Process)라고도 부름. - 중량 프로세스(HWP, Heavy Weight Process)는 스레드를 하나 가진 작업. 프로세서를 사용하는 기본 단위이면서 프로그램을 실행하는 프로세스 내의 개체 즉, 명령 어를 독립적으로 실행할 수 있는 하나의 제어 흐름. 작업 : 스레드의 그룹 환경 - 같은 그룹의 스레드와 코드, 주소 공간, 운영체제의 자원(파일, 신호) 등을 공유. ※ 작업에 스레드가 없으면 아무 일도 할 수 없으므로 반드시 스레드가 있어야 함. 프로세스는 스레드를 하나 이상 가지며, 각 스레드는 아래 내용을 포함. [그림3-12] 스레드 구조 스레드 실행 시의 상태(실행, 준비 등) 실행 스택 지역 변수와 스레드의 특정 데이터를 저장하기 위한 스레드별 정적 저장소 프로세스의 다른 스레드가 공유하는 프로세스의 메모리와 자원에 대한 접근 등의 스레드 실행 환경 정보 (문맥 정보)

7 3. 스레드 스레드의 장점 프로세스에 포함된 스레드들은 공통의 목적 달성을 위해 병렬로 수행. 시스템 성능과 효율 향상.
- 자원을 공유하여 한 프로세스에서 동시 작업 가능. 시스템 성능과 효율 향상. - 하나의 프로세스가 서로 다른 프로세서에서 프로그램의 다른 부분을 동시에 실행 가능. - 응용 프로그램 하나가 비슷한 작업들을 여러 개 수행 가능. 스레드를 이용하여 다음과 같은 이점을 얻을 수 있음. [그림3-13] 프로세스와 다중 스레드 - 사용자에 대한 응답성 증가 : 응용 프로그램의 일부분이 봉쇄 또는 긴 작업 수행 시에도 프로그램 실행을 계속 허용하여 사용자에 대한 응답성이 증가. - 프로세스의 자원과 메모리 공유 가능 : 스레드는 그들이 속한 프로세스의 자원과 메모리를 공유하 므로, 응용 프로그램 하나가 같은 주소 공간에서 여러 개의 스레드를 실행해 시스템 성능 향상과 편리함 제공. - 경제성 : 한 프로세스의 자원을 공유하므로 프로세스를 생성하는 것 보다 오버헤드를 줄일 수 있음. - 다중 프로세서 구조 활용 가능 : 다중 프로세서 구조에서 각 스레드는 다른 프로세서에서 병렬로 실행될 수 있음.

8 3. 스레드 단일 스레드와 다중 스레드 운영체제는 단일 프로세스에서 단일 스레드 실행과 다중 스레드 실행을 지원.
단일 스레드 프로세스 - 프로세스 하나에 스레드 하나가 실행되는 전통적인 방식으로 스레드의 개념이 불확실함. - MS-DOS 다중 스레드 프로세스 - 프로세스 하나에 여러 스레드를 실행하는 것을 지원. - 윈도우 NT/XP, 솔라리스 등 [그림3-14] 단일 스레드 프로세스와 다중 스레드 프로세스

9 3. 스레드 다중 스레드의 특징 프로그램 하나를 여러 실행 단위로 쪼개어 실행한다는 측면에서(각 스레드를 별도의 프로 세서에서 실행) 다중 프로세싱(프로세서)과 같은 의미. 동일 프로세스 내의 스레드는 메모리와 파일을 공유. - 프로세스 하나에 다수의 실행 단위로 구분된 자원을 공유하므로 자원 생성과 관리의 중복성을 최소 화하여 실행 능력을 향상. 각 스레드는 커널 개입 없이 서로 통신이 가능하여 독립적으로 실행. - 서버에서 많은 요청을 효과적으로 처리할 수 있는 환경을 제공. 프로세스를 새로 생성하는 것보다 기존 프로세스에서 스레드를 생성하는 것이 빠르고, 같은 프로세스 내 스레드 간 교환이나 스레드 종료 역시 빠름. 프로세스의 상대적인 무게를 줄여 효율을 극대화하는 것이 목표. - 프로그램 변경 없이 프로세서의 개수에 따라 스레드를 병렬로 처리 가능. 스레드별로 레지스터 상태를 가지지만 서로 공유를 많이 하기 때문에 같은 그룹의 스레드 에 프로세서를 할당하거나 스레드 생성 시 중량 프로세스들 사이의 문맥 교환과 비교하여 더 경제적임.

10 3. 스레드 단일 스레드와 다중 스레드 모델 단일 스레드 프로세스 모델 다중 스레드 프로세스 모델
- 프로세스를 하나의 스레드, 즉 스레드가 가진 레지스터와 스택으로 표현. 다중 스레드 프로세스 모델 - 프로세스를 각각의 스레드와 고유의 레지스터, 스택으로 표현하며 프로세스 주소 영역을 모든 스레드 가 공유. - 프로세스의 모든 스레드는 해당 프로세스의 자원과 상태를 공유하고 같은 주소 공간에 존재하며 동일 한 데이터에 접근. [그림3-15] 프로세스 관리 면에서 살펴본 단일 스레드와 다중 스레드 프로세스

11 3. 스레드 스레드 용법 사용자 수준 제공 시스템 호출이 아닌 사용자 라이브러리 수준에서 스레드 개념을 제공하므로 운영체제와 무 관하여(커널이 작접 제어하지 않아) 속도가 빠름. - 하나의 스레드는 사용자의 데이터 입력을 읽어 들이고 메뉴를 표시. - 다른 하나의 스레드는 사용자 명령을 실행하는 등 프로그램의 이전 명령이 완료되기 전에 다음 명령 을 신속히 준비하여 응용 프로그램의 속도를 향상. 프로그램에 비동기적 요소를 구현 가능. - 워드 프로세서가 지정 시간에 메모리 내용을 디스크에 백업하도록 정기적인 백업 스레드를 생성. 현재 실행 중인 스레드를 대기 상태로 변경하고 다른 스레드로 제어를 이동시키는 상태 변 화는 하나의 서버가 많은 요청을 받아들여 처리하는 효과적인 방법. - 한 스레드가 이미지나 텍스트를 적재하는 동안 다른 스레드가 네트워크 연결을 통해 사용자(클라이언 트)와 상호 작용 가능. [그림3-16] 다중 스레드 환경의 워드 프로세서 실행 [그림3-17] 다중 스레드 환경의 웹 서버 프로세스

12 3. 스레드 공유 메모리 형태의 다중 프로세서 시스템 환경 스레드의 단점
프로그램을 공유 메모리에 저장하고 스레드를 각 프로세서에 할당, 병렬 처리하여 프로세 서 성능을 매우 향상시킬 수 있음. 스레드의 단점 사용자 수준 스레드는 커널 자체가 스레드 하나로 구성되어 있기 때문에 한 스레드에서 시 스템 호출 실행 시 해당 스레드가 포함된 전체 작업이 시스템 호출 결과가 돌아올 때까지 대기. 12

13 3. 스레드 스레드의 상태 변화 스레드의 특징 프로세스처럼 준비, 실행, 대기, 종료 상태로 구분하고 프로세서를 함께 사용하며 항상 스 레드 하나만 실행됨. 한 프로세스에 있는 스레드는 순차적으로 실행되고 자신의 정보를 위한 프로그램 카운터와 스택을 가짐. 새로운 프로세스가 생성되면 프로세스를 위한 스레드도 함께 생성. - 스레드 생성에서는 운영체제가 부모 프로세스와 공유할 자원을 초기화할 필요가 없음. 프로세스 내 스레드는 해당 프로세스에서 다른 스레드를 생성하고 새로 형성된 스레드를 위한 스택과 레지스터를 제공함으로 프로세스의 생성 및 종료 과정 보다 오버헤드가 적음. 하나의 스레드가 대기 상태로 변할 때 전체 프로세스를 대기 상태로 변화시키지 않음. - 하나의 스레드가 대기 상태일 경우 다른 스레드 실행 가능. 프로세스와 달리 서로 독립적이지 않음. - 한 작업에 있는 모든 스레드는 작업의 모든 주소에 접근 가능하므로 한 스레드가 다른 스레드의 스택 을 읽거나 덮어 쓸 수 있음. 보호 문제 - 프로세스는 다수의 사용자에게서 발생하여 경쟁적인 자원 요구와 서로 다른 관계 유지. - 스레드는 한 명의 사용자가 여러 스레드를 가진 작업 하나를 소유.

14 3. 스레드 스레드의 상태 대기 - 스레드가 이벤트를 기다릴 때, 즉 입출력 작업 등이 완료될 때까지 대기(보류) 상태. - 자신의 정보(프로그램 카운터, 스택 포인터 등)를 실행 스택에 저장. 준비 - 스레드가 프로세서에 의해 실행될 수 있는 상태. - 스레드를 대기시킨 이벤트(입출력이 완료되면) 발생 시 해당 스레드는 준비 리스트에 삽입됨. 실행 - 스레드가 프로세서를 점유하여 실행 중인 활성화 상태. 종료 - 스레드가 작업을 종료하면 자원을 해제하고 레지스터 문맥과 스택 할당 제거. [그림3-18] 스레드 상태 변화

15 3. 스레드 스레드 구현 여러 수준에서 스레드 구현 가능 - 스레드 사이에 커널이 개입하지 않아 커널 수준보다 속도가 빠름.
운영체제에 따라 다르며 일반적으로 사용자 수준과 커널 수준, 혹은 혼합한 방식 중 하나를 사용. 윈도우 2000/XP, Mach, OS/2, 솔라리스 운영체제는 커널 수준을 지원하며 프로세스를 위 한 시스템 호출과 유사한 시스템 호출을 제공. 라이브러리 호출을 통해 사용자 수준에서도 지원 가능. - 스레드 사이에 커널이 개입하지 않아 커널 수준보다 속도가 빠름.

16 3. 스레드 사용자 수준 스레드 커널 스레드를 지원하지 않는 운영체제에서 사용.
사용자 수준 스레드 여러 개가 커널 스레드(프로세스) 하나로 매핑되는 방식. 다중 스레드 프로세스에 대해 프로세서(실행 문맥) 하나를 할당하므로 다대일 스레드 매핑이라 칭함. 사용자 수준(공간)에서 스레드 관리가 효율적으로 이루어지므로 스레드와 관련된 모든 과정을 응용 프로그램이 수행. 응용 프로그램은 사용자 수준 스레드 관리를 위한 루틴으로 구성된 스레드 라이브러리 (스레드 패키지)를 이용하며 다중 스레드로 프로그래밍 가능. [그림3-19] 다대일 스레드 매핑과 사용자 수준 스레드 16

17 3. 스레드 스레드 라이브러리 사용자 수준 스레드의 장점
스레드 생성, 종료, 문맥 교환을 위한 코드, 동기화, 메모리 할당, 스레드 간 메시지 전달, 스레드 실행 스케줄링 등의 정보를 포함. 스레드 라이브러리의 생성 유틸리티를 통해 스레드가 생성되며 제어는 프로시저 호출을 통 해 해당 유틸리티로 이동하여 수행. 사용자 수준 스레드의 장점 커널 도움 없이 사용자 주소 공간에 구현된 스레드 패키지로 스레드 연산 실행. 커널은 연산 과정은 모르고 프로세스를 계속 하나의 단위로 스케줄하고 하나의 실행 상태(준비,실행,대기 등)를 할당. 커널과 상관 없이 다양한 목적의 응용 프로그램이나 언어 인터페이스의 요구에 적용할 수 있는 융통성을 가짐. 응용 프로그램은 기본적으로 스레드 하나에서 시작하며 해당 스레드에서 실행을 시작함.

18 3. 스레드 사용자 수준 스레드 이용 시 시스템의 장점 사용자 수준 스레드 이용 시 시스템의 단점 높은 이식성 오버헤드 감소
- 기본 커널 변경 없이 모든 운영체제에 적용 가능. 오버헤드 감소 - 스레드 관리를 위한 모든 데이터 구조가 프로세스의 사용자 주소 공간에 있어 커널의 도움 없이 스레드 교환 가능. (사용자와 커널 전환에 따른 오버헤드 감소) 스케줄링의 유연성 - 스레드 라이브러리에서 스레드 스케줄링을 제어하므로 스케줄링이 응용 프로그램에 맞게 적절히 구성됨. 사용자 수준 스레드 이용 시 시스템의 단점 시스템의 동시성 지원 불가 - 한 번에 하나의 스레드만 커널에 접근 가능하므로 여러 스레드가 시스템 호출을 동시에 사용할 수 없 음. - 어떤 스레드가 시스템 호출을 실행하면 해당 스레드뿐만 아니라 같은 프로세스에 있는 모든 스레드가 대기 상태가 됨. 시스템 규모 확장 제약 - 커널이 프로세스 내부의 다중 스레드를 프로세스 하나로 관리하고 다중 처리 환경이라도 여러 프로세 서 를 이용한 분산 처리를 할 수 없으므로 시스템 규모를 확장하기 어려움. 스레드 간 보호가 어려움 - 스레드 간의 보호에 커널의 보호 기법을 사용할 수 없고, 스레드 라이브러리에서 스레드 간 보호를 제공해야 프로세스 수준에서 보호됨.

19 3. 스레드 커널 수준 스레드 사용자 수준 스레드의 한계를 해결하기 위해 사용자 스레드마다 커널 스레드, 즉 프로세서( 실행 문맥)를 매핑하는 일대일 스레드 매핑을 지원. - 사용자 스레드가 생성되면 그에 따른 커널 스레드가 생성. 커널에 의해 생성, 삭제되고 커널의 텍스트와 전역 데이터를 공유하며 자신만의 커널 스택 을 가짐. 응용 프로그램, 즉 사용자 영역에는 스레드 관리를 위한 코드가 없음. - 모든 응용 프로그램은 다중 스레드로 지원되고 응용 프로그램의 스레드도 하나의 프로세스에서 지원. - 스레드 관리와 관련된 모든 작업은 커널(운영체제)이 지원하며 프로세스와 스레드에 대한 실행 문맥 정보를 유지. 일대일 모델 구현 운영체제 : 윈도우 NT/XP/2000, 리눅스, 솔라리스 9 이상 버전, OS/2 [그림3-20] 일대일 스레드 매핑과 커널 수준 스레드

20 3. 스레드 장점 커널 지원 부족 문제 해결 - 커널에 의한 직접적인 스케줄링과 실행으로 사용자 수준 스레드의 문제를 해결하여 시스템 성능 향상. 병렬 실행 가능 - 스레드 하나가 시스템 호출 시 다른 스레드가 중단되는 다대일 방식의 문제를 해결할 수 있어 다중 프 로세서에서 다중 스레드를 병렬로 실행 가능. - 시스템 규모 확장이 쉬우며 처리량을 늘릴 수 있음. 시스텝 성능 향상 - 프로세스에 있는 스레드 중 어느 하나가 대기 상태가 되더라도 다른 준비 상태 스레드를 실행 가능. 단점 커널 스레드 생성으로 인한 오버헤드 증가로 응용 프로그램의 성능 저하를 막기 위해 시스 템이 지원 스레드 수를 제한해야 함. 같은 프로세스에서 다른 스레드로 전환하는 과정에서 커널 모드 전환 오버헤드가 발생. 사용자 수준 스레드보다 스케줄링과 동기화를 위해 자원이 더 필요함. 시스템이 모든 스레드를 관리하므로 오버헤드 증가. 이식성이 떨어짐 - 시스템 변경 시 제공된 스레드 API(Application Program Interface)를 사용하여 프로그램을 수정. - 제한적인 자원으로 인해 사용자 수준 스레드 생성에 따라 커널 스레드를 무한정 생성할 수 없음. 20

21 3. 스레드 혼합형 스레드 지원 사용자 수준 스레드와 커널 수준 스레드를 혼합한 형태.
- 커널 수준 스레드(일대일방식) : 스레드 수가 제한되는 문제를 해결하기 위한 방법. - 사용자 수준 스레드(다대일방식) : 시스템 호출 시 다른 스레드가 중단되는 문제를 해결하기 위한 방법. 스레드 생성은 사용자 영역에서 이루어지며, 여러 개의 사용자 수준 스레드에 여러 개의 커 널 스레드가 매핑되는 다대다 스레드 모델. 사용자 수준 스레드를 생성할 때마다 커널 수준 스레드를 생성하여 성능이 감소됨. 다대다 모델 구현 운영체제 : 솔라리스(Solaris) 솔라리스 2 스레드 (그림 3-20) ① 작업 일반적인 프로세스 ② 사용자 수준 스레드 응용 프로그램의 병렬 처리를 위한 인터페이스. - 프로세스의 주소 공간에 있는 스레드 라이브러리 를 통해 실행. ③ 경량 프로세스 스레드 하나 이상의 사용자 수준 스레드 지원. - 커널 스레드 하나에 매핑. - 커널에 의해 독립적으로 스케줄링. - 다중 프로세서에서는 병렬로 실행. ④ 커널 스레드 프로세서에서 실행되기 위해 디스패치되며 스케줄 링됨. [그림3-21] 솔라리스 2 스레드

22 3. 스레드 자원과 입출력 대기를 위한 대기가 작업이 아닌 경량 프로세스 단위로 이루어짐.
스레드는 하나의 커널 스레드와 경량 프로세스(LWP)가 연결됨. 각 작업(프로세스)은 경량 프로세스를 한 개 이상 가지며, 경량 프로세스는 대응하는 커널 스레드를 가짐. 어떤 작업의 경량 프로세스가 입출력 완료를 기다리더라도 프로세서는 그 작업의 다른 경량 프로세스로 이동하여 작업을 계속 수행할 수 있음. 스레드 라이브러리가 최적의 성능을 지원. 경량 프로세스의 수를 동적으로 조절하여 사용자 수준 스레드와 커널 수준 스레드를 다대 다 스레드 매핑함. 다대다 스레드 매핑은 스레드 풀링 기법을 통해 일대일 스레드 매핑에서의 오버헤드를 줄 여줌. 스레드 활용 운영체제 예 매크(Mach) - 다중 스레드 시스템으로 커널은 여러 개의 요청을 동시에 서비스할 수 있음. - 스레드 자신은 동기적. (현재 실행되는 스레드가 실행 제어를 그만 두면 같은 그룹에 있는 다른 스레드 를 실행할 수 있음) 유닉스 커널 - 단일 작업(Single-Tasking). (한 순간에 작업 하나만 커널에서 코드를 실행) - 하나의 프로세스만 수정하는 것을 허용하므로 데이터 제어의 동시성 문제 해결 가능. - 스레드가 비동기적인 시스템에서는 복수 개의 프로세스가 데이터를 공유하는 시스템처럼 록킹 (Locking) 기능 필요

23 SUMMARY 프로세스 개념 프로세스 상태 문맥 교환 운영체제의 주 기능은 프로세스의 생성과 종료.
프로세스는 실행 중인 프로그램으로, 실행되는 프로세스는 독립적 혹은 협조적일 수 있음. 협조적 프로세스는 논리적 주소 공간을 직접 공유 또는 파일을 통해서만 데이터 공유 가능. 프로세스 상태 프로세스 상태는 프로세스의 현재 활동에 의해 정의되며, 각 프로세스는 생성, 준비, 실 행, 대기, 종료 상태로 구분, 실행하면서 상태 변경. 프로세스 제어 블록(PCB)에 의해 운영체제에서 표현되며, 프로세스의 일시 정지(서스펜 드) 상태를 이용하여 다중 프로그래밍 환경에서 프로세스 유휴 시간 발생을 해결 가능함. 문맥 교환 프로세스 전환 시 이전 프로세스 상태 레지스터 내용을 보관, 또 다른 프로세스의 레지 스터를 적재하는 문맥교환 과정을 거침.

24 SUMMARY 프로세스와 스레드 스레드 상태 사용자 수준 스레드와 커널 수준 스레드 혼합형 스레드
운영체제는 프로세스를 자원의 소유, 스레드를 실행 단위로 개념을 분리. 하나의 프로세스를 다수의 실행 단위로 구분하여 자원을 공유, 자원의 생성과 관리의 중복성을 최소화하여 수행 능력 향상. 스레드 상태 준비, 실행 대기, 종료 상태로 구분. 한 프로세스에 있는 스레드는 순차적으로 실행, 자신의 정보를 위한 프로그램 카운터와 스택을 각각 가짐. 사용자 수준 스레드와 커널 수준 스레드 사용자 수준 스레드 : 스레드 사이에 이전의 커널이 개입하지 않아 빠름. 커널 수준 스레드 : 같은 프로세스의 스레드를 동시에 스케줄링 가능, 한 프로세스의 스레드가 대기 상태가 되면 커널이 같은 프로세스에서 다른 스레드를 스케줄할 수 있음. 혼합형 스레드 사용자 수준 스레드 생성 시 커널 수준 스레드를 생성. 성능 감소, 스레드 수가 제한되는 일대일 방식(커널 수준)과 어떤 스레드가 시스템 호출 시 다른 스레드가 중단되는 다대일 방식(사용자 수준)의 문제를 해결하기 위한 방법.

25


Download ppt "2. 프로세스 관리 프로세스 중단과 재시작 중단과 재시작을 추가한 프로세스 상태 변화"

Similar presentations


Ads by Google