[운영체제] CPU 스케줄링 알아보기
·
CS/운영체제
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 오랜만에 운영체제에 대해서 다뤄볼건데 그 중에서도 CPU 스케줄링에 대해서 한번 정리를 해보려고 합니다. 본론에 들어가기에 앞서서!운영체제가 CPU로 할당하는 대상에는 프로세스 뿐만 아니라 스레드도 포함이 되어 있지만 이번 포스팅에서는 이 두가지를 '프로세스'로 통칭해서 포스팅한다는 점 유의하고 봐주시면 감사하겠습니다. 스케줄링이란?먼저 기본적인 부분부터 짚고 넘어가겠습니다.  모든 프로세스와 스레드는 실행되기 위해 자원을 필요로 합니다. 여기서 자원이란 프로세스가 실행되기 위해 요구되는 모든 요소를 의미하죠. 따라서 자원 배분은 매우 중요한 문제입니다. 하지만 만약 이 중요한 자원을 무작위로 배분해, 어떤 프로세스에는 100 중 80을 주고, 다른 곳에..
[운영체제] 프로세스의 메모리 구조
·
CS/운영체제
1. 프로세스의 메모리 구조 운영체제는 프로세스에 적절한 메모리를 할당한다. 프로세스의 메모리 구조는 아래 구조를 기반으로 할당하게 된다. 스택(stack), 힙(heap), 데이터 영역(BSS segment, Data segment),코드 영역(code segment)으로 나눠진다. 스택은 위 주소부터 할당되고 힙은 아래 주소부터 할당된다. 2. 스택과 힙 스택과 힙은 동적 할당이 되며, 동적 할당은 런타임 단계에서 메모리를 할당 받는 것을 말한다. 스택은 지역 변수, 매개변수, 실행되는 함수에 의해 늘어나거나 줄어드는 메모리 영역이다. 함수가 호출될 때마다 호출될 때의 환경 등 특정 정보가 스택에 저장된다. 또한 재귀 함수가 호출된다고 했을 때 새로운 스택 프레임이 매번 사용된다. 그렇기 때문에 함수..
[운영체제] 프로세스와 스레드
·
CS/운영체제
1. 프로세스 프로세스(process)는 컴퓨터에서 실행되고 있는 프로그램을 말하며 CPU 스케줄링의 대상이 되는 작업(task)이라는 용어와 같은 의미로 쓰인다. 스레드는 프로세스 내 작업의 흐름을 말한다. 프로그램이 메모리에 올라가면 프로세스가 되는 인스턴스화가 일어나고, 이후 운영체제의 CPU 스케줄러에 따라 CPU가 프로세스를 실행한다. 2. 전처리 소스 코드의 주석을 제거하고 #include 등 헤더 파일을 병합하여 매크로를 치환한다. 3. 컴파일러 오류처리, 코드 최적화 작업을 하며 어셈블리어로 변환한다. 4. 어셈블러 어셈블리어는 목적 코드로 변환된다. 이때 확장자는 운영체제마다 다르다. 5. 링커 프로그램 내에 있는 라이브러리 함수 또는 다른 파일들과 목적 코드를 결합하여 실행 파일을 만든..
[운영체제] 메모리 (1)
·
CS/운영체제
1. 메모리 계층 메모리 계층은 레지스터, 캐시, 메모리, 저장장치로 구성이 되어 있습니다. 레지스터는 CPU 안에 있는 작은 메모리이며 특징으로는 휘발성이고 속도가 가장 빠르며, 기억 용량이 가장 적습니다. 캐시는 L1, L2 캐시를 지칭합니다. 캐시의 특징은 휘발성이며 속도가 빠르고 기억 용량이 적습니다. 주기억장치(RAM)의 특징은 휘발성이고 속도는 보통이며, 기억 용량이 보통입니다. 보조기억장치는 HDD, SSD를 말하며 비휘발성이고 속도는 낮으며, 기억 용량이 많습니다. 램은 하드디스크로부터 일정량의 데이터를 복사해서 임시로 저장하고 필요할 때마다 CPU에 전달하는 역할을 합니다. 계층이 위로 갈수록 용량이 작아지고 속도는 빨라진다는 특징이 있습니다. 2. 캐시 캐시는 데이터를 미리 복사해 놓는..
[운영체제] 메모리 및 성능향상 기법
·
CS/운영체제
1. 휘발성 메모리 1.1 DRAM(Dynamic RAM) 저장된 0과 1의 데이터가 일정 시간이 지나면 사라지므로 일정 시간마다 다시 재생시켜야 한다. 1.2 SRAM(Static RAM) 전력이 공급되는 동안에는 데이터를 보관할 수 있어서 재생할 필요가 없다. 1.3 SDRAM(Synchronous Dynamic Random Access Memory) 클록틱(펄스)이 발생할 때마다 데이터를 저장하는 동기식 DRAM 2. 비휘발성 메모리 2.1 플래시 메모리(Flash Memory) SD 카드, USB 드라이브 같이 전력이 없어도 데이터를 보관할 수 있는 저장장치이다. 2.2 SSD(Solid State Drive) 빠른 데이터 접근 속도, 저전력, 내구성이 HDD보다 좋다. 3. 롬(ROM)의 종류 ..
[운영체제] 운영체제 구조와 종류
·
CS/운영체제
1. 커널(Kernel) 운영체제의 핵심(core) 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 필수 기능을 모아 놓은 것이다. 2. 인터페이스 커널에 사용자의 명령을 전달하고 실행 결과를 사용자에게 알려주는 역할 GUI (Graphical User Interface) : 그래픽을 기반한 사용자 인터페이스 GLI (Command Line Interface) : 텍스트 기반의 사용자 인터페이스 3. 시스템 호출 커널이 제공하는 시스템 자원의 사용과 연관된 함수 커널이 제공하는 인터페이스 System Call 컴퓨터의 자원을 이용하기 위해 사용자 인터페이스 또는 응용프로그램이 커널에게 접근하기 위한 유일한 수단이다. 컴퓨터 자원의 효율적인 보호를 해준다. 4. 시스템 호출을 통한 접근 커널..