시작은 미미하나 끝은 쥬쥬하리라.

프로세스 3

[Window System Programming] Chapter 11. 프로세스 vs 스레드 / 커널 레벨 vs 유저 레벨 스레드 / 커널 모드 vs 유저 모드

3-11 프로세스 vs 스레드 커널 레벨 vs 유저 레벨 스레드 커널 모드 vs 유저 모드 프로세스 vs 스레드 ex) 1인용 테트리스 프로그램 -> 하나의 프로세스 사용 ex) 2인용 테트리스 프로그램 -> 하나의 부모 프로세스에 두 자식 프로세스를 생성해서 구현 -> 만약 프로세스를 상속하면 부모와 자식 프로세스는 모두 데이터/힙/스택/코드 세그먼트가 존재 -> 스케쥴러는 커널 오브젝트 관리와 컨텍스트 스위칭이 부담될 수 있음 일반적으로 코드의 흐름을 2개의 분기로 가져가기 위해서는 함수 호출을 위한 스택이 필요 -> 스택의 논리적 분할이 가능하다면 프로세스를 2개 생성하지 않아도 되지 않을까 ? : 스레드 -> 스레드는 부모 프로세스와 데이터/힙/코드 영역은 공유, 스택만 논리적으로 분할하여 사용 ..

[Window System Programming] Chapter 09. 스케쥴링 알고리즘과 우선순위

2-9 스케쥴링 알고리즘과 우선순위 프로세스 스케쥴러 스케쥴링 알고리즘 프로세스 스케쥴러의 동작 시점 프로세스 스케쥴러 스케쥴러 일반 OS와 리얼타임 OS를 결정짓는 역할 -> 스케줄러의 동작 방식에 따라 일반 OS가 되기도, 리얼타임 OS가 되기도 함 리얼타임 OS : 실시간으로 동작을 처리하며 응답성이 좋은 OS -> A라는 프로그램을 리얼타임 OS와 일반 OS가 동시에 실행한 경우, 리얼타임 OS가 더 빠르게 처리 -> 최종적으로 동작 처리를 마무리하고 실행하는 것은 CPU 성능에 의존적(리얼타임 OS가 무조건적으로 빠르진 않음) 타임 슬라이스 프로세스는 클럭을 기준으로 동작하고, 이 클럭이 모여서 타임 슬라이스를 형성 -> 프로세스에게 할당된 러닝 시간의 기준을 의미 ex) 타임 슬라이스가 3클럭..

[Window System Programming] Chapter 05. 프로세스와 스케쥴러 / 프로세스 생성

2-5 프로세스와 스케쥴러 / 프로세스 생성 프로세스와 스케쥴러 프로세스 생성 프로세스와 스케쥴러 프로세스 메인 메모리로 이동하여 실행 중인 프로그램 하드디스크에 있는 실행 파일을 실행시키는 순간에 메모리 공간이 할당되고 이 순간부터 프로그램은 프로세스 메모리 공간 메모리 공간 : 데이터 영역 + 스택 영역 + 힙 영역 + 코드 영역 -> 데이터 영역 : 전역 변수나 static 변수 할당을 위한 영역 -> 스택 영역 : 지역변수 할당과 함수 호출 시 인자 값 저장을 위한 영역 -> 힙 영역 : 동적 할당을 위한 영역 -> 코드 영역 : 프로그램 실행 시, 명령어들이 올라가는 영역 ex) RAM이 256MB인데 프로세스의 메모리 공간을 4GB 할당 받는 경우 -> 메모리 공간 전체가 RAM에 올라갈 수 ..