OS 8

[운영체제와 정보기술의 원리] 09장. 디스크 관리

디스크의 구조 디스크 외부에서는 디스크를 1차원 배열처럼 취급하게 된다. 이 공간들을 논리블록이라고 하고 데이터가 저장될때에도 논리블록 단위로 젖아된다. 각 논리 블록이 저장되는 디스크 내의 물리적 위치를 섹터라한다. 디스크의 물리적 구조는 마그네틱 원판으로 구성된다. 각각 원판은 트랙으로 구성되고 트랙은 섹터로 나뉘며 섹터에 최소한의 단위 정보가 저장된다. 여러 원판에서 같은 동일한 트랙들의 집합을 실린더라 한다. 디스크 스케줄링 디스크에 대한 접근시간은 탐색시간, 회전지연시간, 전송시간으로 구분된다. 탐색시간은 디스크 헤드를 해당 실린더 위치로 이동시키는데 걸리는 시간이다. 회전지연시간은 디스크가 회전해서 읽고 쓰려는 섹터가 헤드 위치에 도달하기까지 걸리는 시간이다. 전송시간은 해당 섹터가 헤드 위치..

Summary 2022.01.03

[운영체제와 정보기술의 원리] 08장. 가상메모리

운영체제는 보통 모든 모든 프로그램에게 공평하게 같은 크기의 메모리를 할당하기보다는 몇몇 프로그램들에게 집중적으로 메모리를 할당 후 시간이 지나면 메모리를 회수해서 다른 프로그램들에게 다시 집중적으로 할당하는 방식으로 동작한다. 프로세스의 주소 공간 전체가 메모리에 올라와있지 않고, 수행할 부분만 메모리에 올라가고 나머지는 디스크의 스왑영역에 있다가 교체하는 방식이다. 추가적으로 운영체제는 프로그램이 물리적 메모리를 고려할 필요 없이 자기 자신만의 메모리를 사용하는 것처럼 0번지 부터 시작하는 자신만의 메모리 공간인 가상 메모리를 제공한다. 가상메모리는 방식에 따라 요구 페이징과 요구 세그먼테이션 방식으로 구현된다. 요구 페이징 요구 페이징이란 프로그램 실행 시 프로세스를 구성하는 모든 페이지를 한꺼번에..

Summary 2022.01.02

[운영체제와 정보기술의 원리] 07장. 메모리 관리

컴퓨터에서는 byte 단위로 메모리 주소를 부여하기 때문에 만일 32비트 주소 체계를 사용하면 2^32바이트만큼의 메모리 공간에 서로 다른 주소를 할당한다. 또한 내부적으로 보통 4KB(2^12byte) 단위로 묶어서 페이라는 하나의 행정구역을 만들어서 처리한다. 주소 바인딩 프로그램이 메모리에 적재되면 프로세스마다 프로세스를 위한 독자적인 주소 공간이 생긴다. 이를 논리적 주소(Logical Address) 혹은 가상 주소(Virtual Address)라고 한다. CPU는 이 논리적 주소에 근거해 명령을 실행한다. 논리적 주소는 각 프로세스마다 독립적이며 0부터 가지고, 이와 반대로 물리적 주소는 메모리에 실제로 올라가는 위치이다. CPU가 기계어 명령을 수행하기 위해 논리적 주소를 참조하면, 논리적 ..

Summary 2021.12.27

[운영체제와 정보기술의 원리] 06장. CPU 스케줄링

CPU는 프로그램의 기계어 명령을 처리하는 장치이다. 프로그램이 메모리에 올라가면 PC에 수행할 코드의 메모리 주소값을 가지게 되고, CPU는 PC가 가리키는 주소의 기계어 명령을 하니씩 수행한다. 기계어 명령은 CPU 내에서 수행되는 명령, 메모리 접근을 필요로 하는 명령, 입출력을 동반하는 명령으로 나누어 볼 수 있다. CPU 내에서 수행되는 명령은 Add같은 것이 있다. 메모리 접근을 수행하는 명령은 Load, Store 명령이 있다. 입출력을 동반하는 명령은 디스크 읽기, 키보드 입력등이 있다. 다만 입출력 명령을 특권명령으로 규정하여 사용자 프로그램이 직접 수행할 수 없도록 하고, 운영체제를 통해 서비스를 대행하도록 한다. 사용자 프로그램은 CPU 작업과 I/O 작업의 반복으로 구성된다. 프로그..

Summary 2021.12.26

[운영체제와 정보기술의 원리] 05장. 프로세스 관리

프로세스의 개념 프로세스란 실행중인 프로그램으로써 디스크에 존재하는 프로그램이 메모리에 올라가 있는 형태이다. 프로세는 CPU를 획득해 코드를 수행하기도 하고, CPU를 반환하여 입출력을 하기도 한다. 이때 프로세스의 문맥(Context)를 이용하여 현재 어떤 상태에서 수행되고 있는지 필요한 정보를 얻을 수 있다. 프로세스의 문맥은 프로세스의 주소 공간(코드, 데이터, 스택)을 비롯해 레지스터에 어떤 값을 가지고 있는지와 시스템 콜등을 통해 커널에서 수행한 일의 상태, 그 프로세스에 관해 커널이 관리하고 있는 정보등을 포함한다. 다시 정리하면 프로세스의 문맥은 크게 하드웨어 문맥, 프로세스의 주소 공간, 커널상의 문맥으로 나눌 수 있다. 하드웨어 문맥은 CPU의 상태를 나타내는 PC값과 각종 레지스터 값..

Summary 2021.12.20

[운영체제와 정보기술의 원리] 04장. 프로그램의 구조와 실행

프로그램의 구조와 인터럽트 프로그램이 CPU에서 명령을 수행하려면 해당 명령을 담은 프로그램의 주소 영역(코드, 데이터, 스택)이 메모리에 올라가 있어야 한다. 코드 영역은 작성한 프로그램 함수들의 코드가 CPU에서 수행할 수 있는 기계어 명령 형태로 변환되어 저장되는 부분이고, 데이터 영역은 전역 변수등 프로그램이 사용하는 데이터를 저장하는 부분이다. 스택 영역은 함수가 호출될 때 호출된 함수의 수행을 마치고 복귀할 주소 및 데이터를 임시로 저장하는 데에 사ㅣ용되는 공간이다. 프로그램은 메인함수에서 실행을 시작하고 다른 함수가 호출이 되면 그 위치로 점프해 그 함수를 실행하고 돌아오게 되는데 이때 돌아와야하는 지점을 스택에 저장한다. 인터럽트의 동작 원리도 함수의 호출과 비슷하다. 인터럽트가 발생하면 ..

Summary 2021.12.19

[운영체제와 정보기술의 원리] 03장. 컴퓨터 시스템의 동작 원리

컴퓨터 시스템의 구조 컴퓨터 시스템의 구조는 컴퓨터 내부장치인 CPU, 메모리와 컴퓨터 외부 장치인 디스크, 키보드, 마우스, 모니터, 네트워크 장치등으로 구성된다. 외부장치에서 내부장치로 데이터를 읽어와(입력) 연산을 처리후 그 결과를 외부장치로 내보내는 방식(출력)이다. 이것을 입출력(I/O)이라고 한다. 따라서 외부장치를 입출력 장치라고도 한다. 메모리 및 입출력장 등의 하드웨어 장치에는 컨트롤러가 있다. 컨트롤러는 일종의 작은 CPU로써 각 하드웨어 장치에서의 제어를 담당한다. 메모리를 제어하는 메모리 컨트롤러, 디스크를 제어하는 디스크 컨트롤러등이 있다. 운영체제 중 항상 메모리에 올라가 있는 운영체제의 핵심 부분을 커널이라고 한다. CPU 연산과 I/O 연산 컴퓨터내에서 수행되는 연산은 메인 ..

Summary 2021.12.14

[운영체제와 정보기술의 원리] 02장. 운영체제 개요

운영체제의 정의 운영체제(Operating System)란 컴퓨터 HW 바로 윗단에 설치되는 SW로써, 사용자 및 다른 SW와 HW를 연결하는 소프트웨어 계층이다. SW인 운영체제에 HW가 한몸이 되어 컴퓨터 시스템이 된다. 운영체제 자체도 하나의 SW이기에 컴퓨터의 전원이 켜짐과 동시에 필요한 부분만 메모리에 올라가고 필요하지 않은 부분은 그때그때 메모리에 올려서 사용한다. 이때 메모리에 상주하는 운영체제의 부분을 커널(Kernel)이라고 하며 좁은의미의 운영체제이다. 운영체제의 기능 운영체제는 크게 두가지 역할로 나누어 볼 수 있다. 하드웨어를 위한 역할로는 시스템 내의 자원을 효율적으로 관리하는 것이고, 사용자를 위한 역할로는 시스템을 편리하게 사용할 수 있는 환경을 제공하는 것이다. 편리한 환경 ..

Summary 2021.12.14