본문 바로가기

공부/CS5

기술 면접 대비 정리 - 1.5 가상메모리 사용자가 프로그램을 실행하면 OS는 디스크에 저장된 데이터를 메모리로 로드한다. 하지만 메모리 공간은 한정되어 있고, 사용자는 동시에 많은 프로그램을 실행하고 싶어 한다. 이런 메모리 공간의 한계를 극복하기 위해 가상메모리라는 개념이 등장했다. 1.5.1 가상 메모리 가상 메모리는 프로세스의 일부만 메모리에 로드하고, 나머지는 디스크에 둔 상태로 프로세스를 실행하는 방식이다. 이 방식은 프로세스 전체가 메모리에 올라오지 않아도 프로세스를 실행하는데 문제가 없다는 점에서 착안했다. ㅅㅏ용자에게는 프로세스 전체가 메모리에 로드된 것처럼 보이지만, 실제로는 전체가 로드된 것이 아니어서 가상 메모리라고 한다. 다음 그림과 같이 프로세스 일부를 로드하고, 프로세스의 나머지 영역은 디스크에 두면 더 많은 프로세스를.. 2024. 3. 10.
기술 면접 대비 정리 - 1.4 메모리 관리 전략 다수의 프로세스를 실행하려면 한정된 메모리 공간에 많은 프로세스를 로드할 수 있어야 한다. 그래서 메모리 공간을 더 효율적으로 활용하기 위한 여러 방안이 고안되었다. 연속 메모리 할당, 페이징, 세그먼테이션 등의 작동 방식과 장단점을 이해하고 있어야 이후의 가상 메모리를 더 쉽게 이해할 수 있다. 1.4.1 논리 메모리와 물리 메모리 CPU가 프로세스를 처리할 때 보는 주소 값과 실제 메모리의 주소 값은 다르다. 프로세스가 보는 메모리 영역 논리 메모리 영역(logical memory address space) / 가상 메모리 영역(virtual memory) 실제로 사용되는 메모리 영역 물리 메모리 영역 CPU가 프로세스를 실행하며 보는 주소 값 : 논리주소 / 가상주소 실제 메모리에서 사용되는 주소 .. 2024. 3. 3.
기술 면접 대비 정리 - 1.3 스케줄링 멀티 프로세스 환경에서는 여러 프로세스가 모두 실행되어야 하지만 CPU 자원은 한정적. 그래서 스케줄링을 통해 모든 프로세스를 공평하게 실행해 한정된 자원을 효율적으로 활용하는 것이 OS의 주요 목적이다. OS에서 스케줄링은 빠질 수 없는 개념으로 목적, 단계, 각종 용어를 숙지해야한다. 1.3.1 스케줄링의 목적 스케줄링의 목적은 멀티 프로세스 환경에서 모든 프로세스를 공평하게 실행하는 것이다. 세부적으로는 아래의 5가지 목적이 있다. - 공평성 : 모든 프로세스가 공평하게 실행돼야 한다. 특정 프로세스가 실행되지 않는 경우가 없도록 스케줄링. - 효율성 : 자원을 효율적으로 사용해 자원이 사용되지 않는 시간이 없도록 스케줄링 해야한다. - 안정성 : 우선순위를 고려해 높은 우선순위의 프로세스를 먼저 .. 2024. 2. 25.
기술 면접 대비 정리 - 1.2 프로세스 프로세스 관련 질문이 나왔을 때 프로세스를 이용한 프로그래밍 경험을 답변으로 엮으면 개발 경험을 부각시킬 수 있다. 1.2.1 프로세스와 스레드 프로세스란? 컴퓨터에서 실행 중인 하나의 프로그램을 의미한다. 프로그램은 특정 작업을 수행하기 위한 명령어의 집합이다. OS는 프로그램을 실행하면서 디스크에 저장된 데이터를 메모리로 로드한다. 프로세스는 OS로부터 독립된 메모리 영역(코드, 데이터, 스택, 힙)을 할당받으며, 다른 프로세스의 메모리 영역에 접근할 수 없다. 프로세스에 할당된 메모리 영역은 아래 그림과 같으며, PCB는 프로세스 제어 블록이다. 프로세스의 메모리 영역 구조 - 스택(stack) : 지역변수, 함수의 매개변수(파라미터), 반환되는 주소 값 등이 저장되는 영역이다. 높은 주소 값에서 .. 2024. 2. 18.
기술 면접 대비 정리 - 1.1 운영체제 운영체제란 ? 하드웨어 위에 설치되어 하드웨어 게층과 다른 소프트웨어 계층을 연결하는 소프트웨어 계층이다. 컴퓨터 시스템의 자원을 관리하고, 사용자가 컴퓨터를 사용할 수 있는 환경을 제공하는 역할을 수행한다. CPU, 메모리와 같은 컴퓨터 자원은 제한적이라서 자원을 관리하는 일은 매우 중요하다. 또한, 사용자와 컴퓨터 간 인터페이스를 제공해 사용자가 컴퓨터를 편리하게 사용할 수 있는 환경을 제공한다. 대표적인 OS는 windows, mac os, linux, unix 등이 있다. 운영체제의 목적 OS는 한정된 컴퓨터 자원을 관리하는 시스템이다. 이러한 역할에 기반해 4가지 목적이 있다. - 처리 능력 향상 : OS는 자원 관리를 통해 일정 시간 내에 시스템이 처리하는 일의 양을 향상시킨다. - 반환 시간.. 2024. 2. 9.
728x90