본문 바로가기

CS

(16)
쉽게 배우는 운영체제 | ch7. 물리 메모리 관리 메모리 관리의 개요 메모리 관리의 복잡성 CPU는 메모리에 있는 내용을 가져오거나 작업 결과를 메모리에 저장하기 위해 메모리 주소 레지스터를 사용한다. 메모리 주소 레지스터에 필요한 메모리 주소를 넣으면 데이터를 메모리에서 가져오거나 메모리에 데이터를 옮길 수 있다. 폰 노이만 구조의 컴퓨터에서 메모리는 유일한 작업 공간이며 모든 프로그램은 메모리에 올라와야 실행 가능하다. 과거의 일괄 처리 시스템에서는 한 번에 한가지 작업만 처리했기 때문에 메모리 관리가 어렵지 않았다. 그러나 오늘날의 시분할 시스템에서는 운영체제를 포함한 모든 응용 프로그램이 메모리에 올라와 실행되기 때문에 메모리 관리가 복잡하다. 복잡한 메모리 관리는 메모리 관리 시스템이 담당한다. 메모리 관리의 이중성 메모리 관리의 이중성이란 프..
쉽게 배우는 운영체제 | ch8. 가상 메모리 기초 가상 메모리 개요 가상 메모리는 물리 메모리의 크기와 상관없이 메모리를 이용할 수 있도록 하는 기술이다. 가상 메모리 개념 메모리의 크기는 컴퓨터마다 다른데 운영체제가 물리 메모리의 크기에만 의존하면 2GB의 메모리에서 동작하는 프로그램이 1GB의 메모리에서는 동작하지 않을 수 있다. 프로그래머 또한 메모리 크기에 맞는 응용 프로그램만 개발해야 하는데, 실제 메모리 크기를 고려해서 프로그래밍하기란 매우 어렵다. 현대 메모리 관리의 가장 큰 특징은 물리 메모리의 크기와 프로세스가 올라갈 메모리 위치를 신경 쓰지 않고 프로그래밍하도록 지원한다는 것이다. 이러한 메모리 시스템을 가상 메모리라고 부른다. 가상 메모리는 물리 메모리의 크기와 상관없이 프로세스에 커다란 메모리 공간을 제공하는 기술이다. 프로세스는 ..
Ch12. File Management Files & File System 컴퓨터는 정보들을 자기 디스크, 자기테이프, 광 디스크와 같은 다양한 저장매체에 저장합니다. 운영체제는 저장장치의 물리적 특성을 추상화하여 논리적 저장 단위인 파일을 정의합니다. 파일은 운영체제에 의해 물리 장치들로 맵핑되고, 일반적으로 비휘발적 성격을 지니고 있어서 전원이 끊어진 이후에도 정보들을 영구히 보존합니다. 파일은 컴퓨터 시스템의 편리한 사용을 위해 정보 저장의 일괄된 논리적 관점을 제공합니다. 일반적으로 레코드 혹은 블록 단위로 비휘발성 보조장치에 저장됩니다. 사용자의 편의를 위해 파일에 이름을 부여하고 하나의 문자열로 나타냅니다. 파일이 만들어지는 순간 그 파일은 프로세스, 사용자, 시스템으로부터 독립하게 됩니다. 파일은 다음과 같은 속성을 지닙니다. 이..
Ch2. Operating System Overview (3/3) Address Binding 프로세스의 주소(Address)는 논리적 주소(Logical Address)와 물리적(Physical Address)로 나뉩니다. 논리적 주소는 가상 주소(Virtual Address)라고도 하며, CPU가 생성하는 주소입니다. 프로세스마다 독립적으로 가지는 주소 공간이기 때문에 프로세스의 내부에서 사용하고, 각 프로세스마다 0부터 시작합니다. 물리적 주소는 프로세스가 실행되기 위해 실제로 필요한, 실제로 메모리(RAM)에 올라가는 위치를 말합니다. Address Binding은 어떤 프로그램이 메모리의 어느 위치에, 즉 어떤 물리적 주소에 load될지를 결정하는 과정입니다. 이는 binding 시점에 따라 compile time, load time, execution tim..
Ch2. Operating System Overview (2/3) OS Services for Efficient Operation Resource Allocation: 자원: CPU 사이클, 메모리 공간, 메모리 대역폭, 파일 시스템 공간, 파일 입출력 대역폭 Accounting: 어떤 프로세스가 자원을 얼마나 사용했는지 추적 Protection and Security: Multi User 환경에서 시스템 자원으로의 모든 접근은 통제되어야한다. 동시에 Resource에 접근하는 프로세스들이 많을 수 있다. System Calls 시스템 호출(System call)은 운영체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스이다. 보통 C, C++와 같은 고급언어로 작성된 프로그램들은 직접 시스템 호출을 사용할 수 없기 때문에..
Ch2. Operating System Overview (1/3) Operating System 운영체제는 사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어이다. 우리가 일반적으로 컴퓨터를 사용하면서 실행한 모든 프로그램들은 운영체제에서 관리하고 제어한다. 운영체제의 역할을 크게 2가지로 나눈다면 GUI(Graphical User Interface), Resource Utilization으로 나눌 수 있다. A program that controls the execution of application programs An interface between applications and hardware OS는 프로그램과 하드웨어 사이에서, 프로그램의 실행을 위한 환경을 제공한다. 운영체제의 목적 UI (User Interface) Program execution: 시스템은..
Ch1. Computer System Overview What is an Operating System? → Software that operates a computer system. → Resource utilization and GUI (Graphical User Interface) → There is no one description. The more common definition is that ‘The one program running at all times on the computer.’ (usally called the kernel) 컴퓨터 하드웨어를 관리하는 시스템, 하드웨어의 최상단 소프트웨어의 최하단 컴퓨터 하드웨어와 사용자 사이의 중개인 역할 운영체제는 소프트웨어 오직 OS만이 하드웨어와 직접 소통할 수 있다. program runni..
RAID RAID (Redundant Array of Inexpensive/Independent Disk)란, 여러개의 저장장치를 묶어서 하나의 고용량/고성능 저장 장치처럼 사용하는 기술입니다. 영어를 직역해서 표현하면, '저렴한/독립된 디스크의 복수 배열'이라는 의미를 지닌다. RAID는 여러개의 디스크를 배열하여 속도와 안전성, 효율성, 가용성증대를 하는데 쓰이는 기술이다. 가장 중요한 컨셉은 여러개의 디스크를 하나로 묶어 하나의 논리적인 디스크로 작동하게 한다는 것이다. 이 특성상 문제가 있는 디스크만 교체하면 되고 그 동안 다른 저장공간에는 영향없이 저장장치를 운영할 수 있다. 저장공간을 추가할 때도 마찬가지이다. RAID를 구성하는 방법에는 하드웨어적인 방법과 소프트웨어적인 구성방법이 있다. RAID 하..