본문 바로가기

분류 전체보기

(8)
9장 가상 메모리 관리 요구 페이징 1 요구 페이징의 개요 프로세스가 필요로 하는 데이터를 언제 가져올지 결정하는 가져오기 정책에서 프로세스가 요청할 때 메모리로 가져오는것을 demand paging(요구 페이징)이라고 한다. 이때 모든 프로그램을 메모리를 가져오지 않고 메모리를 효율적으로 관리하기 위해 프로세스의 일부만 메모리로 가져온다. 1.1 요구 페이징과 스왑 영역 페이지가 스왑 영역에 있는 경우는 아래와 같이 두 가지 경우가 있다 1.요구 페이징으로 인해 처음부터 물리 메모리에 올라깆지 못한 경우 2.메모리가 ?꽉 차서 스왑 영역으로 옮겨 온 경우 1.2 페이지 테이블 엔트리(PTE)의 구성 페이지 안에 여러 비트들이 존재한다. 이중 유효 비트는, 가상 메모리의 페이지 테블에는 페이지가 물리 메모리에 있는지, 스왑 영..
8장 가상 메모리의 기초 요구 페이징 프로세스가 필요로 하는 데이터를 언제 메모리로 가져올지 결정하는 가져오기 정책에서 이를 요구하는 것을 페이징 이라고 한다. 1 가상 메모리 시스템 물리 메모리의 크기와 상관없이 프로세스에 커다란 메모리 공간을 제공하는 기술로 메모리를 이용하면 프로세스는 운영체제가 어디에 있는지, 물리 메모리의 크기가 어느 정도인지 신경쓰지 않고 메모리를 마음대로 사용할 수 있다. 이에 대한 장점으로 운영체제 및 어플리케이션 양의 상관없이 메모리 공간을 활용할 수 있다. 가상 메모리의 구성 프로세스가 바라보는 메모리 영역과 메모리 관리자가 바라보는 메모리 영역으로 나누어진다. 이때 가상 메모리에서 메모리 관리자는 물리 메모리의 부족한 부분을 슷왑 영역으로 보충한다. 즉 교체하는 방법을 통해서 메모리 제약 사양..
7장 물리 메모리 관리 메모리 관리의 개요 1 메모리 관리의 복잡성 우리는 컴퓨터는 폰노이만 아케텍쳐 처리 방식을 전제하기 때문에 모든 프로그램은 '메모리'에 올라와야 실행이 가능하다. 과거에 일괄 처리 시스템을 작업을 할 때는 한가지 작업에만 집중했기 때문에 메모리 관리가 어렵지 않았지만, 현재 우리가 사용하고 있는 '시분할'시스템은 메모리 관리가 복잡하다고 할 수 있다. 2 메모리 관리의 이중성 프로그램을 돌릴 때 2가지 관점으로 우리는 메모리를 바라 볼 수 있다. 프로세스 입장 : 하나를 독점해서 빨리 끝내려고 함. 메모리 관리자 입장 : 한꺼번에 다 끝내는게 아니라 도마를 쪼개서 여러가지를 효율적으로 관리하길 원함. 이런 이중성으로 프로그램 내 충돌이 발생하기독 한다. 3. 소스코드의 번역과 실행 언어 번역 프로그램의 ..
5장 프로세스 동기화 / 6장 교착상태 프로세스 강 통신 1 프로세스 간 통신 개념 프로세스 통신이란 쉽게 말하자면 프로세스간의이 메시지 전달이라고 비유 수 있겠다. 프로세스가 다른 프소세스와 데이터를 주고 받는 프로세스 간 통신에는 여러가지로 나누어진다. 1) 프로세스 내부 데이터 통신 : 프로셋 내부에 스레드가 자원을 공유하고 있는 경우 2) 프레스 간 데이터 통신 : 프로세스 하나와 프로세스 하나가 메시지를 주고 받는 것 3) 네트워크를 이용한 통신 : 네트워크가 각각 다를 때 어떻게 통신하는지에 관한 것 프로세스가 통신(메시지 전달)을 하는 가장 좋은 방식은? 프로세스들간의 통신을 할 때 중간에 전역변수를 두는 것이 효과적이다. 간단하게 사람이 정보를 전달할 때 직접 불특정 다수에게 대면으로 정보를 전달할 수 있겠지만 간편하게 카카오톡..
4장 CPU 스케줄링 스케줄링의 개요 1. 스케줄링이란? CPU 스케줄은 프로세서 스케줄러라고도 불리며 포르세스에 CPU와 시스템 얼마나 어 덯게 배정할지를 결정하는 작업이다. 1.1 고수준 스케줄링 가장 큰 단위의 CPU 스케줄링을 고수준 스케줄링이라고 한다. 시스템 전체 작업수를 조종하며 동시에 실행가능한 프로세스의 총개수가 정해진다. 스케줄링의 단계는 위 사진으로 정리해볼 수 있다. 고수준 스케줄링 전체 시스템의 부하를 고려하여 작업을 초기 시작을 관리한다. 고수준 방식이긴 하지만 스레드 방식으로 쪼개질 수 있다. (규모가 큰 일괄 작업을 처리할 때 사용) 중간 수준 스케줄링 고수준 스케줄링 대신 프로세스의수를 조절해서 시스템의 부하를 최소화 시킨다. 저수준 스케줄링 저수준 스케줄링에서는 실제로 프로세스가 진행되며 필요..
3장 프로세스와 스레드 01 프로세스 개념 운영체제에서 프로세스는 하나의 작업 단위이다. 사용자가 마우스를 더블클릭하여 프로그램을 실행하면 그 프로그램은 프로세스가 된다. 프로그램과 프로세스의 차이? 프로그램이란 어떤 데이터를 사용하여 어떤 작업을 할지 그 절차를 적어놓은것이지만 프로세스는 프로그램을 작성된 작업 절차를 실제로 실행에 옮긴다는 의미. 즉 작성한 프로그램이 실행되면 프로세스가 됨. 프로그램 : 저장장치에 저장되어 있는 정적인 상태 프로세스 : 실행을 위해 메모리에 올라온 동적인 상태 2. 프로그램 처리방식 2.1 일괄 처리 시스템 명령 처리 방식을 순차적으로 큐로 처리하는 방식. 2.2 시분할 처리 시스템 CPU 스케줄링과 다중 프로그래밍을 이용해서 각 사용자들에게 컴퓨터 자원을 시간적으로 분할하여 처리하는 방식..
커널과 인터페이스 + 제 2장 컴퓨터 구조와 성능 향상 1. 커널이란? 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 웅영체제의 핵심적인 기능을 모아논 것이다. 커널은 운영체제에서 없어서는 안될 핵심적인 소프트웨어이다. 만약 커널이 없는 운영체제라고 한다면, 닭이 없는 삼계탕이라고 비유할 수 있겠다. 운영체제는 두 개의 부분으로 나누어진다. 1. 응용프로그램과 인접한 인터페이스 2. 커널 운영체제는 커널과 인터페이스를 분리하여, 칸은 커널을 사용하더라도 다른 인터페이스를 가진 형태로 제작할 수 있다. 이때 가튼 커널이라도 인터페이스가 장착되면 사용자에게는 다른 운영체제처럼 보인다. 2. 시스템 호출과 드라이버 커널 내부는 시스템 호출과 드라이버로 구성되어 있다. 시스템 호출 커널이 컴퓨터 자원을 보호하기 위해서 사용자가 자원에 직접 접근하는 것을 차단한..
1장 운영체제 소개/ 운영체제의 역사 1. 일상생활 속의 운영체제 우리는 컴퓨터나 스마트폰을 켰을 때 가장 먼저 운영체제라는 소프트웨어를 접하게 된다. 그리고 컴퓨터에서 작동되는 모든 프로그램은 운영체제 기반으로 작동된다고 볼 수 있다. 압력밥솥도 운영체제가 있나? 우리가 흔히 알고 있는 운영체제인 Window.Linux, Mac, Android 등을 제외하고도 일상생활속에서 운영체제를 활용하고 있는 경우는 많다. 가정에 있는 밥솥부터 전자도어락까지 운영체제가 기반이 된다. PC와 같이 다양한 기능을 수행하는 범용성을 지니지는 않는 운영체제를 인베디드 시스템이라고 한다. 2. 운영체제의 목적 운영체제의 주된 목적은 컴퓨터의 하드웨어 자원 관리와 사용자에게 편의를 제공하는 것이다. 컴퓨터에 연결되어 있는 수 많은 하드웨어를 자원을 효율적으로 ..