본문 바로가기

컨텍스트 스위칭

쓰레드(Thread) 쓰레드(Thread) : 하나의 프로그램 내에서 여러 개의 실행 흐름을 두기 위한 모델 1. 독립적인 스택(Stack)을 가진다. 2. 코드 영역을 공유한다. (위와 같이 쓰레드 main 함수는 코드 영역에 존재하는 모든 함수를 호출할 수 있다) 3. 데이터 영역과 힙을 공유한다.(전역변수와 동적 할당된 메모리 공간 공유 가능) 4. 프로세스 핸들 테이블 공유 프로세스 핸들 테이블에 대한 핸들 정보는 프로세스 내의 쓰레드 들에게 공유되어 각 쓰레드가 그 핸들에 대해 접근이 가능하다 (참고 : 같은 프로세스내의 쓰레드들은 스택 이외의 모든 것을 공유한다) 프로세스와 쓰레드 Windows 에서 프로세스는 단순히 쓰레드를 담는 상자다. 실제 프로그램 흐름을 형성하는 것은 쓰레드이다. 따라서 스케줄러(Windo.. 더보기
프로세스의 생성과 소멸 프로세스(Process) : 메모리에 로드되어 실행중인 프로그램 1. 프로세스를 구성하는 요소 메모리 구조 : 프로세스 생성시 만들어진다. Register Set : 프로세스 실행을 위해 필요한 데이터들로 채워진다. 2. 프로세스의 스케줄링과 상태 변화 프로세스의 스케줄링(Scheduling) : 프로세스의 CPU 할당 순서 및 방법을 결정짓는 일 (스케줄링 알고리즘(Scheduling Algorithms) : 스케줄링에 사용되는 알고리즘) 스케줄러(Scheduler) : 스케줄링 알고리즘을 적용해서 실제로 프로세스를 관리하는 운영체제 요소(모듈) (참고 : 멀티 프로세스(Multi-Process) 운영체제의 CPU 사용 실행해야 할 프로세스 여러개라면 멀티 프로세스는 모든 프로세스를 일단 실행시킨 후 .. 더보기