본문 바로가기

OS9

웹 캐싱 기법 웹 캐싱 웹 캐싱이란 웹 사용자에 의해 빈번히 요청되는 데이터를 사용자와 지리적으로 가까운 웹캐시 서버에 보관해 빠른 서비스를 가능하게 하는 기법을 말한다. 캐싱(caching) 기법은 저장장치 계층 간의 속도 차이를 완충시켜 주기 위해 컴퓨터 구조, 운영체제, 데이터베이스 등의 분야에서 각각 캐시 메모리, 페이징 기법, 버퍼링 기법등으로 널리 연구되어 왔다. 1990년대 중반부터는 웹의 보편화와 콘텐츠 전송 네트워크(CDN) 서비스의 활성화로 인해 단일 시스템 내에서 속도 차가 있는 저장장치 간에 이루어지는 캐싱 기법뿐 아니라 원격지의 객체를 캐싱하는 기법의 중요성이 커지고 있다. 웹의 인기가 높아감에 따라 네트워크의 병목현상과 그로 인한 웹서비스의 오랜 지연시간문제 등이 점점 더 심각해져 가는 추세이.. 2023. 4. 12.
디스크 관리 디스크 관리 디스크의 구조 논리 블록(logical block) 디스크 외부에서는 디스크를 일정한 크기의 저장공간들로 이루어진 1차원 배열처럼 취급한다. 일정한 크기의 저장공간을 논리블록이라고 하며, 디스크에 데이터가 저장될 때에는 논리블록 단위로 저장되고, 디스크 외부로 입출력이 일어날 때에도 논리블록 단위로 전송된다. 논리 블록에 저장된 데이터에 접근 시 배열에 접근하는 것처럼 해당 블록의 인덱스 번호를 디스크에 전달해야 한다. 그러면 디스크 컨트롤러는 해당 논리블록이 저장된 물리적 위치를 찾아 요청된 데이터에 대한 입출력 작업을 수행하게 된다. 섹터(sector) 각 논리블록이 저장되는 디스크 내의 물리적인 위치 논리블록과 섹터 하나와 1대1로 매핑되어 저장된다. 마그네틱 원판 각각의 원판은 트랙으.. 2023. 4. 7.
가상 메모리 가상 메모리(virtual memory) 운영체제는 어떤 방식으로 프로세스에게 메모리를 할당하는가? 시분할 시스템 환경에서는 한정된 메모리 공간을 여러 프로그램이 조금씩 나누어 사용하고 보통 몇몇 프로그램들에게 집중적으로 메모리를 할당하고 회수하는 방식을 채택한다. 프로세스의 빠른 수행을 위해 프로그램마다 최소한 확보해야 하는 메모리의 크기가 존재하기 때문이다. 기본적으로 당장 필요하지 않은 부분은 디스크의 스왑 영역에 내려놓았다가 사용하기 때문에 프로그램 입장에서는 물리적 메모리 크기에 대한 제약이 없다고 봐도 된다. 운영체제는 더 나아가 프로그램이 물리적 메모리를 고려할 필요 없이 자기 자신만이 메모리를 사용하는 것처럼 가정해 프로그램하는 것을 지원한다. 프로그램은 0번지 부터 시작하는 자기 자신만의.. 2023. 4. 1.
메모리 관리 메모리 관리 메모리는 주소를 통해 접근하는 저장 장치이다. byte 단위로 메모리 주소가 부여된다. 효율적인 운영을 위해 연속된 일련의 영역을 행정구역처럼 4kb 단위로 묶어서 페이지라고 부르며 사용 페이지 내에서 바이트별 위치 구분을 위해서는 12비트가 필요하다. 메모리를 어떠한 행정구역으로 나누어 관리할 것인가? 프로그램이 물리적 메모리에 어떻게 올라가서 주소를 할당받게 되는가? 주소 바인딩 주소바인딩이란 프로세스의 논리적 주소를 물리적 메모리 주소로 연결시켜 주는 작업이다. 프로그램이 실행을 위해 메모리에 적재되면 그 프로세스를 위한 독자적인 주소 공간이 생성된다. CPU는 프로세스마다 독립적으로 갖는 논리적 주소에 근거해 명령을 실행한다. 물리적 주소는 물리적 메모리에 실제로 올라가는 위치를 말한.. 2023. 3. 26.
CPU 스케줄링 CPU 버스트가 균일하지 않은 다양한 프로그램이 공존하므로 효율적인 CPU 스케줄링 기법이 필요하다. 사용자 프로그램이 수행되는 과정은 CPU 작업과 I/O 작업의 반복으로 구성된다. 각 프로그램마다 CPU 버스트와 I/O 버스트가 차지하는 비율이 균일하지는 않다. 대부분의 프로세스가 짧은 CPU 버스트를 가지며 극히 일부분만 긴 CPU 버스트를 가진다. I/O 바운드 프로세스의 CPU 할당 우선순위를 높여주어서 전체적인 효율을 높이는 게 중요하다. CPU burst 사용자 프로그램이 CPU를 직접 가지고 빠른 명령을 수행하는 단계 Add, Load, Store 명령 등 I/O burst I/O 요청이 발생해 커널에 의해 입출력 작업을 진행하는 비교적 느린 단계 입출력 명령 I/O bound proces.. 2023. 3. 18.
프로세스 관리 프로세스란? 프로세스는 실행 중인 프로그램을 의미한다. job 이라는 용어와 혼용해서 사용 프로세스를 이해하기 위해서는 프로세스 문맥(context)에 대한 이해가 필요하다. 여러 프로세스가 함께 수행되는 시분할 시스템 환경에서는 CPU의 제어권을 잠깐씩 점유하여 사용하기 때문에 다시 획득해서 명령의 수행을 재개하는 시점이 되면 이전의 CPU 보유 시점에 어느 부분까지 명령을 수행했는지 직전 수행 시점의 정확한 상태를 재현할 필요가 있다. 프로세스의 문맥은 그 프로세스의 주소 공간을 비롯해 레지스터에 어떤 값을 가지고 있었는지와, 시스템 콜 등을 통해 커널에서 수행한 일의 상태, 그 프로세스에 관해 커널이 관리하고 있는 각종 정보 등을 포함하게 된다. 프로세스 문맥을 크게 3가지로 분류 하드웨어 문맥 C.. 2023. 3. 11.