컴퓨터 구조
1. 디스크에서 프로그램의 일부를 메모리에 올림(프로세스).
2. 프로세스는 명령어의 집합이고 명령어의 일부를 cache에 적재.
3. CPU는 cahce에서 처리해야 할 명령어를 가져온 후 ALU에서 하나씩 연산.
기본적으로 CPU는 한 번에 하나의 연산만 할 수 있다.
그렇다면 동시에 여러 프로그램을 어떻게 실행시킬까?
시분할
방법은 시분할이다.
약간의 눈속임인데, CPU의 시간을 분할하여 처리해야 하는 프로세스들에게 나눠주는 거다.
즉 여러 프로세스를 번걸아가면서 조금씩 처리하는 거라고 보면 된다.
운영체제 책을 보면 이런 식의 그림을 볼 수 있을텐데,
프로세스 A, B, C, D가 있다고 하자.
각각의 프로세스가 모두 처리되려면 각각 3/4초, 1/4초, 1초, 1/2초가 필요하다.
A → B → C → D 순으로 순차적으로 처리하면 A가 다 처리될 때까지 나머지 프로세스들은 CPU를 할당받지 못 할 거다.
위 예시는 3/4초가 지나면 다음 프로세스가 서비스 받을 수 있지만, 만약 A가 처리되는데 매우 오랜 시간이 걸린다면?
그렇다면 A를 제외한 나머지는 오랫동안 서비스 받지 못하고 한참을 대기해야할 거다.
사용자 입장에서 예를 들면 인터넷 브라우저 창 4개를 열었을 때 하나만 정상적으로 보이고 나머지는 모두 흰 화면인 상황일 것이다.
만약 A가 다 처리될 때까지 기다리지 않고 조금씩 나눠서 처리하면 어떨까?
즉 A를 1/4초 동안 처리한 후 CPU를 B에게 넘기는 거다.
B 또한 1/4초 동안 처리한 후 CPU의 소유가 C에게 넘어가는 거다.
이렇게 된다면 B, C, D는 A가 모두 처리될 때까지 기다릴 필요 없이 공평하게 조금씩 CPU를 점유할 수 있게 된다.
사용자 입장에서도 인터넷 브라우저 창 4개가 모두 비슷한 시간에 로딩이 완료된 화면을 볼 수 있을 것이다.
이처럼 CPU의 시간을 조금씩 분할하여 각 프로세스들에게 할당하는 방식을 시분할이라고 한다.
'Study > 컴퓨터구조 | 운영체제' 카테고리의 다른 글
[인프런 기술노트] 동기식 비동기식의 동작 방식 차이 (0) | 2023.02.19 |
---|---|
[인프런 기술노트] CPU속도가 Hz(헤르쯔)인 진짜 이유 (feat. 컴퓨터 구조) (2) | 2023.02.19 |
[인프런 기술노트] 컴퓨터 전공 수업 10분으로 압축 (컴퓨터 구조 + 운영 체제) (0) | 2023.02.17 |