반응형

운영체제(OS) 17

[OS] 페이징(Paging) 기법

페이징(Paging) 기법 메모리 가상화에서 가상 주소와 물리 주소를 맵핑시킬 때 페이지 프레임을 단위로 하는 방식 고정 분할 및 가변 분할 기법은 각각 내부단편화, 외부단편화의 문제점 존재 페이징 기법은 마지막 페이지에서의 내부단편화 1회만 발생하므로 효율적 페이지 테이블(Page Table) 페이지 테이블에는 가상 주소, 물리 주소 뿐만 아니라 P, M 등의 Control bit들도 포함된다. P(present) 비트는 해당 페이지가 메모리에 위치하는가에 대한 비트이다. P 비트가 1인 경우 해당 페이지가 메모리에 올라와 있다는 뜻이고 0인 경우 디스크의 swap 영역에 있다는 것을 의미하며 page fault가 일어난다. M(modifiy) 비트는 해당 페이지가 메모리에 적재된 후 수정된 적이 있는..

운영체제(OS) 2022.10.26

[OS] 가상 메모리(Virtual Memory)

가상 메모리(Virtual Memory) 다중 프로그래밍 방식의 protection 문제를 해결하기 위해 가상 메모리 개념이 도입되었다. 이는 각 프로세스마다 가상의 메모리 주소 체계를 갖게하고 이를 실제 물리 메모리 공간과 맵핑 시키는 방식이다. 즉, 서로 다른 프로세스들의 가상 메모리 상에서의 주소가 같더라도 실제 물리 메모리에서는 다른 주소 공간을 가리키게 된다. 이러한 방식으로 process간 isolation을 보장하게 된다. 프로세스 실행 과정 1. 태스크 로딩 디스크에 저장되어 있는 파일은 stack과 heap을 가질 필요가 없기 때문에 text 영역과 data 영역으로 이루어져있다. 또한 디스크에 저장되는 파일은 disk block 단위로 나뉘어 저장이 되는데 보통 그 크기는 4KB이다. ..

운영체제(OS) 2022.10.18

[OS] 물리 메모리 관리 기법

초기 운영체제 1950년 ~ 1970년대의 초기 운영체제는 물리 메모리에 단 하나의 프로그램만 올리는 single programming의 형태였다. 즉, 메모리는 os 영역과 실행 중인 하나의 프로그램이 올라가는 영역으로만 구분되었으며 가상화 개념이 존재하지 않았다. 동시에 메모리를 점유할 수 있는 프로그램이 단 하나였기 때문에 multi-tasking이 불가능했다. Multiprogramming and Time Sharing 이후 Multiprogramming의 등장으로 동시에 여러 프로세스가 실행되는 것처럼 보이게 할 수 있게 되었다. os는 여러 프로세스를 매우 빠르게 전환하면서 실행하는데 이를 Time Sharing(시분할)이라고 한다. 이때 기존에 실행되던 프로세스의 상태를 디스크에 저장하게 되..

운영체제(OS) 2022.10.18

[OS] Scheduling

스케줄링 평가 기준 Turn around time(반환 시간) = 작업 완료 시간 - 작업 도착 시간 Response time(응답 시간) = 시스템으로부터 첫번째 응답이 온 시간 = 작업 시작 시간 - 작업 도착 시간 Fairness(공정성) = 얼마나 고르게 여러 프로세스에 cpu에 분배했느냐에 대한 척도 (성능과 상충) preemption vs non-preemption preemption(선점)은 다른 프로세스가 선점하고 있는 cpu를 빼앗을 수 있는 것을 의미하고 non-preemption(비선점)은 반대로 빼앗을 수 없다는 것을 의미한다. 여러가지 스케줄링 기법 현실적인 os가 아닌 다음의 가정을 따른다는 하에 성립되는 이론들 모든 task는 동일한 시간 동안에 실행된다. 모든 task는 동일..

운영체제(OS) 2022.10.17

[OS] Limited Direct Execution

Direct Execution direct execution이란 프로그램에서 어떤 코드를 돌리던지 os가 간섭하지 않는 것을 뜻한다. 즉, os가 pcb를 생성하고 인자를 stack에 할당해주는 초기 작업을 다 마친 후에 프로그램의 main()을 호출해서 실행함으로써 os에서 프로그램으로 영역이 넘어간 다음에는 어떠한 연산을 하더라도 간섭하지 않는 것이다. ​ 문제점 프로세스가 원치 않는 일을 하지 않는다고 보장할 수 없음 os가 이를 중단시키고 다른 프로세스를 실행시킬 수 없음(time sharing 불가) os가 실행 중인 프로그램을 제어하지 못하면 os가 아니라 라이브러리에 불과하다. 이러한 문제점들 때문에 os는 제한적 직접 실행(Limited Drect Execution) 방식을 따른다. Use..

운영체제(OS) 2022.10.17

[OS] Process Abstraction

프로세스(Process) 디스크에 저장되어 있는 실행 파일(프로그램)이 실행되어 메모리에 올라오면 이를 프로세스라고 한다. 이때 프로그램 전체를 모두 메모리에 올릴 수도, 필요한 일부만 메모리에 올릴 수도 있다. 프로세스의 구성 프로세스는 메모리에 위치하며 구체적으로 Text(Code), Data, Heap, Stack 영역으로 구분된다. Text(Code) : 코드 Data : 전역변수, Static 변수 Heap : 동적할당 Stack : 지역변수, 파라미터 프로세스는 자신만의 물리적인 메모리 공간을 할당받아 그 안에서 자신만의 가상 주소 체계를 갖는다. 일부 레지스터 또한 프로세스의 구성 요소인데 다음 명령어를 가리키는 Program Counter(PC), 스택 내의 특정 공간의 위치를 가리키는 S..

운영체제(OS) 2022.10.14

[OS] Introduction to Operating Systems

OS(Operating System)란? OS는 하드웨어를 관리하는 소프트웨어의 일종으로 컴퓨터에서 자원 관리자의 역할을 한다. CPU, Memory, Disk 등 하드웨어를 struct로 정의해 각각 Process, Virtual Memory, File System을 만들어낸다. OS는 kernel 함수를 이용해 하드웨어를 관리하며, 사용자는 kernel 함수를 직접 호출하지 않고 시스템 콜을 사용한다. OS를 통해 사용자는 프로그램을 보다 쉽게 사용할 수 있고 시스템이 정확하고 효율적으로 작동하는지 확인할 수 있다. 이를 가능하게 하는 것이 OS의 핵심 개념인 추상화와 가상화이다. 추상화 VS 가상화 추상화(Abstarction) : HW의 구체적인 구조 등을 숨기고 클래스나 구조체로서 사용자에게 인..

운영체제(OS) 2022.10.14
반응형