본문 바로가기

전체 글

(74)
메모리 관리 2 - 메모리 관리 전략 Goal 여러 메모리 관리 기법에 대해 설명할 수 있다. 운영체제는 한정된 크기의 메모리를 효율적으로 다루기 위해 다양한 방식의 메모리 관리 방법을 사용한다. 운영체제는 메모리 관리를 통해 다음과 같은 기능을 제공해준다. 여러 프로세스가 동시에 실행될 수 있도록 메모리 공간 제공 메모리 보호(리소스 보호) 공유 (메모리 공유를 통해 통신이 가능) 사용자(프로그래머)를 위한 메모리 어드레싱 방법 제공 그렇다면 어떤 메모리 관리 기법이 있는지 알아보자. 메모리 관리 정책 가져오기 정책(fetch policy) : 필요로 하는 데이터를 언제 메모리로 가져올지 결정 배치 정책(placement policy) : 가져온 데이터를 메모리 어느 위치에 올려 놓을지 결정 교체 정책(replacement policy) ..
메모리 관리 1 - 주소 바인딩 Goal 주소 종류(Logical / Physical / Symbolic address)에 대한 이해 프로그래머에 의해 작성된 코드가 어떤 과정을 거쳐 물리 메모리 주소로 매핑 되는지 그 과정을 설명할 수 있다. 주소의 종류 Logical address 프로세스마다 독립적으로 갖는 공간 논리적인 주소 체계로, 0번지를 시작으로 상대적인 주소 값을 갖는다. CPU에서 인식하는 주소 체계이다. virtual / relative / relocatable address 라고도 한다. Physical address 실제 물리적인 메모리 위치를 식별하는 주소 absolute address 라고도 한다. Symbolic address 변수나 함수와 같이 코드에서 사용하는 상징적인 이름을 주소로 사용하는 방법 => 프..
교착 상태(Dead Lock) Goal 교착 상태 발생하는 이유(조건)에 대해 설명할 수 있다. 교착 상태가 발생했을 때 해결할 수 있는 방안 몇 가지를 설명할 수 있다. 교착 상태(Dead Lock)란? 교착 상태(dead lock)란 두 개 이상의 작업(task)이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태를 가리킨다. 교착 상태란 다중 프로그래밍 환경에서 흔히 발생할 수 있는 문제이다. 이 문제를 해결하는 일반적인 방법은 아직 없는 상태이다. 현재의 대부분의 운영 체제들은 교착 상태를 막는 것은 불가능하다. 교착 상태가 발생하면 여러 운영 체제들은 제각기 다른 비표준 방식들로 이러한 교착 상태에 대응한다. 그렇다면 교착 상태는 어떤 상황에서 발생하고 어떻게 해결해야 할까? 교..
이미지 저장 방식 Goal레스터 그래픽스, 벡터 그래픽스에 대해 설명할 수 있다.컴퓨터 그래픽스에서 이미지(image)는 2차원 형태로 저장된 데이터를 의미한다. 우리가 모니터와 같은 디스플레이 장치로 이미지를 볼 수 있는 이유는, 이미지 데이터가 디스플레이 장치의 입력값으로 전달되어 전기적 신호 변환되어 디스플레이 장치를 통해 표현되기 때문이다.(이미지 데이터 => 디스플레이 장치) 그렇다면 이미지는 어떤 형태로 저장될까? 이미지 표현 방식래스터 그래픽스(Raster graphics) : 픽셀(pixel)을 기본 단위로 이루어진 이미지 - 'bitmap' 이라고도 한다.벡터 그래픽스(Vector graphics) : (점, 직선, 곡선, 다각형 등) 기하 객체로 표현되는 이미지 래스터(비트맵) 방식 비트맵(bitmap)..
동기화(Synchronization) Goal 동기화가 무엇이고 왜 필요한지 설명할 수 있다. 임계 구역(critical section)에 대해 설명할 수 있다. 임계 구역 문제를 해결하기 위한 동기화 방법(semapohre, monitor 등)에 대한 이해 관련 용어 공유 자원(shared resource) 임계 구역(critical section) 경쟁 상태(race condition) 상호 배제(mutual exclusion) 세마포어(semaphore), 뮤텍스(mutex), 모니터(monitor) 동기화(Synchronization)란? 시스템을 동시에 작동시키기 위해 여러 사건들을 조화시키는 것을 의미 작업들 사이의 수행 시기를 조절하여 사건이 동시에 일어나거나, 일정한간격을 두고 일어날 수 있도록 한다. 스레드(또는 프로세스) ..
스케줄링(Scheduling) Goal 스케줄링 시 어떤 것들을 고려해야 하는지 이해 스케줄링 알고리즘 평가 기준에 대한 이해 여러가지 스케줄링 기법과 그 특징에 대한 이해 스케줄링(Scheduling)이란? 컴퓨터 분야에서 스케줄링이란 컴퓨터 시스템 자원(CPU등)을 어떤 작업(task)에 할당할지 결정하는 것을 의미한다. ex) network scheduling, I/O scheduling, Job scheduling etc CPU 스케줄링 : CPU를 어떤 작업(프로세스 또는 스레드 등)에 할당할지 결정 스케줄링은 작업 단위나 관리 범위 등에 따라 구분할 수 있다. ex) 고수준 스케줄링, 중간 수준 스케줄링, 저수준 스케줄링 선점형 스케줄링과 비선점형 스케줄링 CPU를 강제로 빼앗을 수 있는지에 따라 선점(preemptive)..
스레드(Thread) Goal 스레드가 무엇인지 설명할 수 있다. 메모리 관점에서 프로세스와 스레드를 그리고 차이점을 설명할 수 있다. 멀티 스레드 사용의 장단점에 대해서 설명할 수 있다. 커널 스레드, 유저 스레드에 대한 이해 연관 포스팅 : 프로세스 스레드(Thread)란? 스레드(thread)란 프로세스 내에서 실제로 작업을 수행하는 주체를 의미한다. (실행 흐름 단위) 모든 프로세스에는 한 개(main-thread) 이상의 스레드 가 존재한다. 두 개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스(multi-threaded process)라고 한다. 스레드는 CPU 스케줄러에 의해 처리되는 작업(task) 단위이다. 즉, 각 스레드마다 CPU를 할당받아 수행해야할 작업을 실행한다. 스레드 탄생 배경 프로세스 간..
프로세스(Process) Goal 프로세스란 무엇인지 설명할 수 있다. 메모리 관점에서 프로세스를 그리고 설명할 수 있다. 프로세스 제어 블록에 대한 이해 문맥 교환(context switching)에 대해 설명할 수 있다. 프로세스 상태(state)에 대해 설명할 수 있다. 프로세스(Process)란? 프로세스는 '실행중인 프로그램'을 의미한다 프로그램 vs 프로세스 프로그램 : 보조기억장치(하드 디스크, SSD)에 저장되어 있는 실행 코드(명령어)와 정적인 데이터의 묶음 프로세스 : 실행 중인 프로그램으로, 프로그램을 더블 클릭하여 실행하면 해당 프로그램이 메모리에 적재되어 프로세스 형태로 실행된다. 즉, 프로그램을 인스턴스화 한 것이 프로세스라고 할 수 있다. 가상 메모리 관점에서 본 프로세스 구조 메모리 관점에서 보면 프..