CS/operating system 28

Disk Management: 디스크 관리 (2/2)

3. 다중 디스크 환경에서의 스케줄링 여러 사용자를 동시에 서비스하는 서버에서는 다중 디스크를 사용한다. 왜냐하면 여러 디스크로 동시에 서비스할 수 있고 일부 디스크에 오류가 발생해도 지속적인 서비스가 가능하기 때문이다. 이러한 다중 디스크 환경에서는 디스크 내에서의 입출력 요청의 처리 순서만 결정하는 것이 아니라 어떤 디스크의 작업을 수행할 것인지를 고르는 문제까지 해결해야 한다. 최근에는 전력 소모를 줄이는 것이 디스크 관리의 또 다른 중요한 목표로 인식되고 있다. 4. 디스크의 저전력 관리 1) 비활성화 기법 디스크의 상태는 전력 소모를 기준으로 크게 4가지 상태인 활동(active), 공회전(idle), 준비(standby), 휴면(sleep)으로 나눌 수 있다. 이 때 현재 상태에서 다른 상태로..

CS/operating system 2021.02.24

Disk Management: 디스크 관리 (1/2)

Disk Management * Physical Formatting (Low-Level Formatting) - 디스크를 컨트롤러가 읽고 쑬 수 있도록 섹터들로 나누는 과정 - 각 섹터는 header + 실제 data(보통 512 byte) + trailer로 구성된다. - header과 trailer는 section number, ECC(Error - Connectiong Code)등의 정보가 저장되며 controller가 직접 접근 및 운영 * Partitioning - 디스크를 하나 이상의 실린더 그룹으로 나누는 과정 - OS는 이것을 독립적 disk로 취급 * Logical Formatting - 파일 시스템을 만드는 것 - FAT, inode, free space 등의 구조를 포함한다. * Bo..

CS/operating system 2021.02.23

Virtual Memory: 가상 메모리 (2/2)

3. 페이지 프레임의 할당 (page frame의 allocation) Allocation problem: 각 process에게 얼마만큼의 page frame을 할당할 것인지에 대한 문제 allocation의 필요성 - 메모리 참조 명령어 수행 시 명령어, 데이터 등 여러 페이지를 동시에 참조한다. 명령어 수행을 위해 최소한 할당되어야 하는 frame의 수가 있음 - loop를 구성하는 page들은 한꺼번에 allocate되는 것이 필요함. 왜냐하면 최소한의 allocation이 없으면 매 loop마다 page fault나기 때문이다. allocation scheme - equal allocation(균등 할당) 모든 프로세스에게 똑같은 갯수 할당해주기 - proportional allocation(비례..

CS/operating system 2021.02.22

Virtual Memory: 가상 메모리 (1/2)

프로그램이 실행되기 위해 그 프로세스의 주소 공간 전체가 메모리에 올라와 있어야 하는 것은 아니다. 운영체제는 cpu에서 당장 수행해야 하는 부분만을 메모리에 올려두고 나머지는 디스크의 스왑 영역(swap area)에 올려둔다. 프로그램은 0번지부터 시작하는 자기 자신만의 메모리 주소 공간을 가정할 수 있는데, 이러한 공간을 가상 메모리(virtual memeory)라고 부른다. 가상 메모리는 모든 프로세스가 가지고 있으며 이들 공간 중 일부는 물리적 메모리에 올라가고 일부는 디스크의 스왑 영역에서 준비하고 있는다. 프로세스 주소 공간을 메모리로 적재하는 단위에 따라 가상 메모리 기법은 요구 페이징(demand paging)과 요구 세그먼테이션(demand segmentation)으로 나뉜다. 대부분 요..

CS/operating system 2021.02.19

Memory Management: 메모리 관리 (3/3)

5. Segmentation (세그먼테이션) segment란? / segmentation이란? 프로그램의 의미(기능) 단위 / 프로그램을 세그먼트로 나누어 물리적 메모리에 올리는 기법 하나의 프로세스를 구성하는 주소 공간은 일반적으로 코드, 데이터, 스택 등의 의미있는 단위들로 구성된다. 세그먼트는 이와 같이 주소 공간을 기능 단위 또는 의미 단위로 나눈 것을 뜻한다. 프로세스의 주소 공간 전체를 하나의 세그먼트로 볼 수도 있으며, 일반적으로는 코드, 데이터, 스택 등의 기능 단위로 세그먼트를 정의한다. 작게는 프로그램을 구성하는 함수 하나하나를 세그먼트로 정의할 수도 있다. 세그먼트는 의미 단위로 잘랐기 때문에 크기가 균열하지 않다. 크기가 균열하지 않은 세그먼트들을 메모리에 적재하는 부가적인 오버헤드..

CS/operating system 2021.02.18

Memory Management: 메모리 관리 (2/3)

3. 물리적 메모리의 할당 방식 Allocation of Physical Memory 메모리는 일반적으로 두 영역으로 나뉘어 사용한다. * OS 상주 영역 interrupt vector 와 함께 낮은 주소 영역 사용 * 사용자 프로세스 영역 높은 주소 영역 사용 사용자 프로세스 영역의 관리 방법은 프로세스를 메모리에 올리는 방식에 따라 연속 할당 (contiguous allocation) 방식과 불연속할당 (noncountiguous allocation) 방식으로 나뉜다. - 연속 할당(contiguous allocation) 연속 할당 방식은 프로세스를 메모리에 올릴 때 그 주소 공간을 여러 개로 분할하지 않고 물리적 메모리의 한 곳에 연속적으로 적재하는 방식이다. 이 방식은 물리적 메모리를 고정된 크..

CS/operating system 2021.02.17

Memory Management: 메모리 관리 (1/3)

컴퓨터에서는 byte단위로 메모리 주소를 부여하기 때문에 32비트 주소 체계를 사용하면 2^32바이트 만큼의 메모리 공간에 서로 다른 주소를 할당할 수 있다. 컴퓨터 상의 주소는 32비트를 그대로 사용하지 않고 효율적인 운영을 위해 일련의 영역을 행정구역처럼 묶어서 사용한다. 보통 4kb(=2^12byte) 단위로 묶어서 페이지(page)를 만든다. 하나의 페이지 크기가 2^12이므로 페이지 내에서 바이트별 위치 구분을 위해서는 12비트가 필요하다. 따라서 총 32비트 주소 중 하위 12비트는 페이지 내에서의 주소를 나타내게 된다. * Logical Address( = virtual address) - 프로세스마다 독립적으로 가지는 주소 공간 - 각 프로세스마다 0번지부터 시작 - CPU가 보는 주소는 ..

CS/operating system 2021.02.16

CPU Scheduling: CPU 스케줄링 (2/2)

1) FCFS (First Come First Served) 프로세스가 준비 큐에 도착한 시간 순서대로 cpu를 할당하는 방식. 비선점형이라 cpu를 차지한 프로세스가 내놓기 전까지는 cpu를 선점당하지 않는다. 효율적이지 않은 알고리즘임 cpu 버스트가 긴 프로세스 하나가 cpu 버스트가 짧은 여러개보다 먼저 도착했다고 한다면 cpu 버스트가 짧은 프로세스들이 cpu 버스트가 긴 프로세스 하나 때문에 오래 기다려야 해서 평균 대기 시간(average waiting time)이 길어진다. FCFS 스케줄링에서는 먼저 도착한 프로세스의 성격에 따라 평균 대기시간이 크게 달라진다. 즉 CPU 버스트가 긴 프로세스가 먼저 도착한 경우 평균 대기 시간이 길어지는 반면, CPU 버스트가 짧은 프로세스가 먼저 도착..

CS/operating system 2021.02.13

CPU Scheduling: CPU 스케줄링 (1/2)

CPU는 프로그램의 기계어 명령을 실제로 수행하는 중앙처리장치이다. 프로그램이 시작되어 메모리에 올라가면 pc(레지스터의 일종)가 cpu가 실행해야 할 명령의 메모리 주소값을 가리키고 있다. cpu는 컴퓨터 내부에 하나밖에 없기 때문에 매우 효율적으로 사용하여야 하는 하드웨어 자원이다. - 일반명령 1. cpu 내부에서 수행되는 명령 ex) add 연산 (레지스터에 있는 두 값을 더해 레지스터에 저장하는 명령. cpu 내에서만 수행되므로 정말 빠르다) 2. 메모리 접근을 필요로 하는 명령 ex) load, store (load : 메모리 데이터 -> cpu / store : 계산된 결과값 -> 메모리 둘 다 cpu 내에서만 수행된느 것보단 느리지만 비교적 짧은 시간이 걸림) - 특권 명령 1. 입출력을 ..

CS/operating system 2021.02.12

Process Management: 프로세스 관리 (3/3)

7. 프로세스의 생성(Process Creation) 프로세스 생성은 어려운 거라서 시스템이 부팅되고 난 최초의 프로세스는 운영체제가 생성하지만 그 이후 존재하는 프로세스가 다른 프로세스를 복재 생성하게 된다. 부모 프로세스(parent process)가 자식 프로세스(child process)를 생성한다. 이러한 방식을 통해 프로세스는 족보와 같은 계층을 생성하게 된다. 현실 세계에서는 부모가 먼저 죽고 자식이 죽지만 프로세스 세계에서는 자식이 먼저 죽고 부모가 죽는다. 왜냐하면 부모 프로세스는 자식 프로세스의 죽음에 대한 처리를 담당해야 하기 때문이다. 불효가 아닐 수 없다. 프로세스는 자원을 필요로 하는데 어떻게 자원을 공급받을까? 그 방법은 1. 운영체제로부터 공급받는다. 2. 부모와 공유하여 사..

CS/operating system 2021.02.10