본문 바로가기

Computer Science/Operating System3

[OS] 가상 메모리 메모리란? 프로그램과 프로그램 실행에 필요한 데이터 및 코드를 저장하는 장치 메모리의 종류 주기억 장치: RAM, register, cache memory 보조기억 장치: SSD, HDD 가상 메모리의 필요성 기존에는 프로그램이 실행되기 위해 프로그램 전체가 메모리에 로드되어야 했기 때문에, 메모리(RAM)의 용량은 가장 큰 애플리케이션의 용량보다 커야했다. 하지만 메모리의 접근은 순차적이고 지역화되어 있는 경향이 있기 때문에 전체를 로드하여 사용하는 것은 비효율적이었다. 가상 메모리는 이러한 물리적 메모리 용량의 한계를 극복하기 위해 개발된 기술이다. 프로세스를 실행할 때 필요한 최소한의 부분만 메모리에 로드하고 나머지는 보조기억장치(디스크)에 두는 것이다. 결과적으로 보다 적은 메모리 용량으로 프로그.. 2023. 8. 16.
[OS] 프로세스와 스레드 프로세스(Process)란? 메모리에 적재되어 실행되고 있는 프로그램의 인스턴스 각 프로세스는 독립된 메모리 영역(Code, Data, Stack, Heap)을 할당받는다. 서로 다른 프로세스는 각각 개별적으로 실행되므로 서로의 데이터에 직접적으로 접근할 수 없다. 다른 프로세스의 자원에 접근하려면 IPC(InterProcess Communication)을 활용해야 한다. 프로세스는 1개 이상의 스레드를 가지고 있다. 프로세스 구조 Code: 프로그램 코드가 CPU가 해석 가능한 기계어 형태로 저장되어 있다. Data: 전역 변수, 클래스 변수, 상수 등이 저장되어 있다. Stack: 함수 호출 시 할당되는 공간으로 함수 종료 시 소멸된다. 함수 내의 내역 변수 또한 저장된다. Heap: 동적으로 할당되.. 2023. 8. 3.
[OS] 운영체제의 구조 운영체제는 Kernel과 Interface로 이루어져 있다 Kernel 컴퓨터 운영체제의 핵심이 되는 컴퓨터 프로그램으로, 시스템의 모든 것을 완전히 통제한다. 운영체제의 다른 부분 및 응용프로그램 수행에 필요한 여러 가지 서비스를 제공한다. Interface 커널에 사용자의 명령을 전달하고 실행 결과를 사용자에게 반환한다. * Interface의 사전적 의미: 서로 다른 두 개의 시스템이나 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면 Kernel은 System Call 과 Driver로 이루어져 있다 System Call 사용자나 응용프로그램이 컴퓨터 리소스에 직접 접근할 경우 시스템 관리에 문제가 발생할 수 있다. 따라서 커널의 System Call이 제공하는 함수들을 이용하여 간접적.. 2023. 2. 1.