저번 글 에서는..
조금 많이 따분한 PE FILE의 구조에 대해서 포스팅했었다.
생각보다 조회수도 많이 나오고 칭찬받은 포스트라서 비슷한 주제로 다시 포스팅하게 되었다.
(https://traitors-biscuit.tistory.com/40)
이번 글 에서는..
Windows operating systems에서 process가 생성되고 실행되는 과정을 포스팅하고싶다.
PE FILE의 전체적인 구조는?
process는 pe file을 loader가 읽어서 메모리에 적재한 일종의 객체이다.
따라서 pe file의 구조를 알아야한다.
다음 그림은 loader가 보조저장장치에서 주저장장치로 옮겨서 실행시키는 과정을 설명했다.
load-store 설계에 따라서,
RAM에 있는 정보를 CPU의 레지스터로 옮겨서 연산을 진행하여야하는데
이를 동시에, 그리고 n + 1개의 프로세스를 처리하려고 만들어진 운영체제의 모듈이 있다.
바로 운영체제의 스케줄러이다.
n + 1개의 프로세스를 CPU가 동일하고 일정하게 처리 할 수 있도록 만든 모듈이다.
문제는 스케줄러또한 CPU가 처리하기 때문에 어느정도의 성능 하락은 있지만
여전히 많은 운영체제에서 사용하는 설계이다.
성능 저하의 확인..
단일 프로세스의 처리속도, n + 1 프로세스의 처리 속도를 비교해 보았다.
단일 프로세스에서 5초 동안 매트릭스 연산을 진행 했을시,
5개의 프로세스에서 5초 동안 매트릭스 연산을 진행 했을시의 비교를 진행한다.
결과값을 조금 드라마틱하게 보고싶어서 가상머신의 리눅스를 사용했다.
첫번째 사진은 단일 프로세스이며, 두번째 사진은 5개의 프로세스이다.