CS/운영체제(OS)(11)
-
[운영체제] 메모리 관리
주소(address) : 서로 다른 위치를 구분하기 위해 사용하는 일련의 숫자 컴퓨터 시스템은 오늘날 32비트 혹은 64비트의 주소 체계를 가진다. 1. 주소 바인딩 주소 공간 : 프로그램이 실행을 위해 메모리에 적재되면 그 프로세스를 위한 독자적인 주소 공간, 이 주소를 논리적 주소 또는 가상 주소라 한다. 논리적 주소는 각 프로세스마다 독립적으로 할당되는데 반해 물리적 주소는 물리적 메모리에 실제 올라가는 위치를 말한다. 보통 물리적 메모리의 낮은 주소 영역에 OS가, 높은 주소 영역에 사용자 프로세스가 올라간다. CPU가 기계어 명령을 수행하기 위해 논리적 주소를 통해 메모리 참조를 하게 되면, 물리적 메모리의 어느 위치에 매핑되는지 알아야 한다. 주소 바인딩은 프로세스의 논리적 주소를 물리적 주소..
2022.08.06 -
[운영체제] CPU 스케줄링
CPU : 프로그램의 기계어 명령을 실제로 수행하는 컴퓨터 내의 중앙처리장치 프로그램 카운터(PC) : 레지스터의 일종으로 프로그램이 메모리에 올라가면 현재 CPU에서 수행할 코드의 메모리 주소값을 가지고 있게 된다. CPU는 이 PC를 보고 기계어 명령을 수행한다. ※ 프로그램 실행과 관련된 기계어 명령 ① CPU 내에서 수행되는 명령 Add 명령 : CPU 내의 레지스터에 있는 두 값을 더해 레지스터에 저장하는 명령 CPU 내에서만 수행되므로 명령의 수행 속도가 매우 빠르다. ② 메모리 접근을 필요로 하는 명령 Load 명령 : 메모리에 있는 데이터를 CPU로 읽어들이는 명령 Store 명령 : CPU에서 계산된 결과값을 메모리에 저장하는 명령 CPU 내에서 수행되는 명령보다는 아니지만 속도가 빠른 ..
2022.08.05 -
[운영체제] 프로세스 관리
1. 프로세스란? 프로세스 : 실행 중인 프로그램, 디스크에 실행파일 형태로 존재하던 프로그램이 메모리에 올라가 실행되기 시작하면 비로소 프로세스가 된다. 프로세스의 문맥(context) : 프로세스가 현재 어떤 상태에서 수행되고 있는지 정확히 규명하기 위해 필요한 정보, 그 프로세스의 주소 공간(코드, 데이터, 스택)과 레지스터에 어떤 값이 있었는지, 시스템 콜을 통해 커널에서 수행한 일의 상태, 커널이 프로세스에 관해 관리하는 각종 정보 포함 ① 하드웨어 문맥 : CPU의 수행 상태를 나타내는 것, 프로그램 카운터 값과 각종 레지스터에 저장하고 있는 값 ② 프로세스의 주소 공간 : 코드, 데이터, 스택에 저장되고 있는 값 ③ 커널상의 문맥 : OS는 프로그램이 프로세스가 되었을 때 프로세스를 관리하기..
2022.08.05 -
[운영체제] 프로그램의 구조와 실행
1. 프로그램의 구조와 인터럽트 프로그램이 CPU에서 명령을 수행하려면 해당 명령을 담은 프로그램의 주소 영역이 메모리에 올라가 있어야한다. 프로그램의 주소 영역은 크게 코드(code), 데이터(data), 스택(stack) 영역으로 구분된다. 코드 영역 : 작성한 프로그램 함수들의 코드가 CPU에서 수행할 수 있는 기계어 명령 형태로 변환되어 저장되는 부분 데이터 영역 : 전역 변수 등 프로그램이 사용하는 데이터를 저장하는 부분 스택 영역 : 함수가 호출될 때 호출된 함수의 수행을 마치고 복귀할 주소 및 데이터를 임시로 저장하는 데에 사용되는 공간 스택 영역은 함수의 호출에서 그 역할이 드러난다. X 함수를 수행하는 도중 Y 함수를 호출해야 한다고 가정했을 때, X 함수에서 Y 함수를 호출한 지점을 스..
2022.08.05 -
[운영체제] 컴퓨터 시스템 (Computer System)
1. 컴퓨터 시스템의 구조 내부 장치 : CPU, 메모리 / 외부 장치 : 네트워크 디바이스, 키보드, 마우스, 모니터, 디스크 외부 장치에서 내부 장치로 데이터를 읽어와(입력, input) 각종 연산을 처리한 후, 그 연산의 결과를 다시 내부 장치에서 외부 장치로 내보내는(출력, output) 방식의 흐름이다. 메모리 및 입출력 장치의 각 하드웨어 장치에는 '컨트롤러'라는 것이 붙어 있다. 이 컨트롤러는 컴퓨터 전체를 제어하는 CPU(중앙처리장치)가 있듯, 각 하드웨어 장치마다 존재하면서 이를 제어하는 작은 CPU라고 볼 수 있다. 운영체제의 역할은 여러 프로그램의 동시에 수행되는 시스템을 위한 것이다. 그리고, 이 프로그램들이 실행되기 위해서는 컴퓨터의 메모리 위에 올라가 있어야 한다. 이러한 자원들..
2022.08.04