본문 바로가기
반응형

Computer Science43

Scheduling 2 이전 글에서는 싱글코어 CPU가 여러 프로세스들을 다루는 방법을 알아봤다. 하지만 우리가 현재 쓰고 있는 컴퓨터들은 대부분 멀티코어를 사용한다. 그렇기 때문에 지금부터는 멀티코어에서 일어나는 스케줄링에 대해 알아볼 것이다. NUMA and CPU Scheduling fig 7-1을 보면 CPU를 볼 수 있는데(왼쪽 0, 오른쪽 1) 멀티코어는 CPU내부에 코어가 여러개 존재하는 것이다. 그리고 각 CPU는 직접적으로 연결된 메모리가 존재한다. 여기서 더 큰 스케일의 컴퓨터라면 이러한 CPU가 2개 이상 설치될 수도 있다. 이러한 상황에서 CPU의 코어는 인접한 다른 CPU의 메모리에도 접근할 수 있다. 하지만 이때의 속도는 직접적으로 연결된 메모리 접근속도보다 당연히 더 느릴 것이다. 이런 경우를 Non.. 2022. 4. 12.
Scheduling 1 저번 글은 시스템 프로그래밍에서도 대부분 다뤘던 내용이라서 중간에 급하게 끝냈었다. 프로세스나 쓰레드는 CPU 자원을 공유하여 프로그램이 동시에 실행되는 것 같은 효과를 얻는다고 했었다. 이 글에서는 어떻게 CPU를 잘 사용하여 전체 시스템에 이로운 방향으로 갈 수 있는지 알아볼 것이다. CPU Scheduling 프로세스를 전환할 때 두 가지에 대해 생각해야 하는데 하나는 컨텍스트 스위칭 같이 '어떻게' 전환할 것인가(메커니즘)이고 다른 하나는 언제 전환할 것인가(정책)이다. CPU 스케줄링은 실행 가능한 프로세스 집합을 제공하여 다음에 실행할 프로세스를 결정하는 정책이다. 이것에 대해 어떻게 접근할지 살펴보자. Basic Approaches Non-preemptive scheduling 여기서 pre.. 2022. 4. 7.
Processes & Threads 오늘 배울 내용은 프로세스에 관한 내용이다. 시스템 프로그래밍(참고)에서도 다뤘던 주제인지라 겹치는 내용이 꽤 있기 때문에 어느정도 진행하다가 뒷 내용은 생략할 것이다. What is a Process? 프로세스라는 말은 컴퓨터를 하면서 많이 접해봤을 것이다. 가령 프로그램이 먹통일 때 ctrl+alt+del을 눌러서 작업 관리자로 들어가 '프로세스' 탭에서 프로그램을 강제 종료할 때도 이를 볼 수 있다. 이와 연관지어 생각해보면 프로세스는 프로그램 실행의 단위라고 이해할 수도 있겠다. 그렇기 때문에 OS에서 관리하는 protection의 기본 단위이다. 또한 각 프로세스를 인식해야 하기에 프로세스는 PID라는 id로 인식된다. 이러한 프로세스에는 CPU 컨텍스트(레지스터 등 프로세스를 실행하고 있는 C.. 2022. 3. 24.
Architectural Support for OS 이 카테고리의 글 들은 아주대학교 안정섭 교수님의 '운영체제' 수업을 수강하고 복습 겸 정리하는 글이다. 해당 과목을 더 잘 이해하기 위해서는 컴퓨터 구조(블로그 시작 전에 수강해 따로 정리하지 못했다 ㅠㅠ)와 시스템 프로그래밍('시스템 프로그래밍' 카테고리를 참고하자)에 대한 대략적인 이해가 필요할 것 이다. Computer System Organization 다음 사진은 컴퓨터 시스템의 구성을 나타낸 것이다. 연산을 담당하는 CPU와 프로그램이 올려지는 메모리외에 디스크, 마우스, 프린터 등의 입출력 장치들이 합쳐저 컴퓨터 시스템을 구성한다. 어플리케이션은 입출력 장치들을 사용할텐데, 어플리케이션이 이러한 HW에 직접 접근하는 것이 아니고 OS가 사이에서 동작하여 컴퓨터의 자원을 효율적으로 동작하게끔.. 2022. 3. 17.
반응형