10. 페이지 교체 알고리즘

10. 페이지 교체 알고리즘

학습개요 우리는 지난 강의에서 페이지 호출기법을 살펴보았습니다. 그런데 새로운 페이지를 메모리에 적재하려는데 빈 페이지 프레임이 없으면 어떻게 해야 할까요? 페이지 프레임 중 한 칸을 선택하여 거기에 든 페이지 대신 새로운 페이지를 넣어야 할 것입니다. 이때 어떤 페이지를 교체 대상으로 선택하느냐에 따라 컴퓨터 시스템의 성능에 영향을 주게 됩니다. 한편, 다중 프로그래밍 환경에서는 각 프로세스가 사용할 수 … Read more

09. 가상 메모리

09. 가상 메모리

학습개요 가상 메모리는 실제 메모리(주기억장치)의 용량보다 더 많은 양의 기억공간이 필요한 프로그램을 실행할 수 있게 하는 중요한 개념입니다. 이러한 동작이 가능하기 위해서는 가상의 커다란 프로세스 기억공간을 정해진 방법으로 분할하고, 그중 현재 필요한 부분만 메모리에 적재되도록 해야 합니다. 이를 위해 프로세스에 의해 참조되는 주소를 실제 메모리에서 사용하는 주소와 분리합니다. 또한 필요한 영역을 적절한 시점에 메모리에 적재합니다. … Read more

08. 메모리 관리

08. 메모리 관리

학습개요 메모리(주기억장치)의 구성과 관리는 운영체제의 설계에 가장 중요한 영향을 미치는 요인 중 하나로서, 실제로 시스템의 성능은 사용 가능한 메모리의 용량과 프로세스 처리 중 메모리를 얼마나 효과적으로 사용하는가와 관련이 큽니다. 이번 강의에서는 컴퓨터 시스템의 메모리 관리와 관련된 기초적인 개념을 다룹니다. 프로세스와 메모리의 관계, 기억장치의 구성, 프로그래밍 환경에 따른 메모리 할당과 보호, 메모리 배치기법 등의 기초적인 사항에 … Read more

07. 교착상태(2)

07. 교착상태(2)

학습개요 병행 프로세스의 교착상태를 처리하는 기법 중 교착상태 예방은 지난 강의에서 살펴보았습니다. 하지만 교착상태의 필요조건은 제거하지 못하는 경우도 있고 제거할 수는 있지만 자원이용률이 낮아지는 경우도 있습니다. 특히 환형대기 조건을 제거하는 방법은 적용에 어려움이 존재합니다. 교착상태를 처리하는 다른 기법인 교착상태 회피는 안전순서열이라는 개념을 이용하여 교착상태를 피하는 방법이고, 교착상태 탐지 및 복구는 교착상태가 발생하면 사후처리를 하는 방법입니다. … Read more

06. 교착상태(1)

06. 교착상태(1)

학습개요 병행 프로세스들은 컴퓨터 시스템의 제한된 자원을 사용하기 위해 서로 경쟁할 수 있습니다. 만일 어떤 프로세스가 사용하고자 하는 자원을 다른 프로세스가 온전히 점유하고 있다면 그 프로세스는 대기해야 합니다. 이렇게 요구와 점유 및 이에 따른 대기상태가 서로 꼬리를 물고 있게 되면, 이러한 관계에 포함된 프로세스들은 더 이상 진행하지 못하게 되는 상태인 교착상태에 빠질 수 있습니다. 운영체제는 … Read more

05. 병행 프로세스(2)

05. 병행 프로세스(2)

학습개요 병행 프로세스 중 협력 프로세스에서 발생할 수 있는 구체적인 문제로 생산자-소비자 문제와 판독기-기록기 문제가 있습니다. 또한 협력 프로세스 사이에는 데이터를 공유하기 위해 통신이 필수인데, 이 과정에서도 다양한 문제가 발생할 수 있습니다. 이번 강의에서는 생산자-소비자 문제, 판독기-기록기 문제의 예를 통해 협력 프로세스의 일반적 구현방법을 학습합니다. 또한 병행 프로세스 사이의 통신을 위한 방법에 대해 논리적 측면에서 … Read more

04. 병행 프로세스(1)

04. 병행 프로세스(1)

학습개요 최근에는 여러 프로세스가 단순히 순차처리가 아닌 병행처리될 필요가 많습니다. 음악 파일을 배경음악으로 재생하며 동영상도 틀어 놓고 문서작업을 하는 경우, 운영체제는 이들을 병행으로 처리해야 합니다. 특히 이렇게 병행처리되는 프로세스가 서로 유기적으로 상호작용하며 동작하는 경우에는 해결해야 할 다양한 문제가 존재합니다. 이번 강의에서는 병행 프로세스의 기본 개념과 함께 상호배제와 동기화 문제를 알아봅니다. 그리고 이를 해결하기 위해 제공되는 … Read more

03. 프로세스 스케줄링

03. 프로세스 스케줄링

학습개요 운영체제는 실행할 준비가 된 프로세스들이 CPU를 적절히 배정받아 작업을 효율적으로 처리할 수 있도록 관리해야 하고, 이를 위해 다양한 스케줄링 알고리즘을 활용합니다. 이번 강의에서는 프로세스 스케줄링의 개요와 정책에 대해 살펴보고, 스케줄링 알고리즘의 성능평가 기준과 함께 여러 가지 스케줄링 기법에 대해 학습합니다. 학습목표 학습하기 정리하기

02. 프로세스와 쓰레드

02. 프로세스와 쓰레드

학습개요 운영체제는 컴퓨터를 사용하기 위해 반드시 필요한 소프트웨어 중 하나입니다. 컴퓨터가 사용자에게 제공하는 서비스가 다양해지고 편리해지는 만큼 사용자를 위해 컴퓨터 내에서 이루어져야 하는 자원의 관리나 활용이 효율적으로 동작해야 하는데, 운영체제는 그 근간을 이루는 핵심적인 시스템 소프트웨어입니다. 이번 강의에서는 운영체제에 대한 전반적인 개요에 대해 알아봅니다. 우선 운영체제의 정의와 역할을 살펴본 후, 운영체제를 구성하는 기본적 요소인 프로세스 … Read more

01. 운영체제 소개

01. 운영체제 소개

학습개요 운영체제는 컴퓨터를 사용하기 위해 반드시 필요한 소프트웨어 중 하나입니다. 컴퓨터가 사용자에게 제공하는 서비스가 다양해지고 편리해지는 만큼 사용자를 위해 컴퓨터 내에서 이루어져야 하는 자원의 관리나 활용이 효율적으로 동작해야 하는데, 운영체제는 그 근간을 이루는 핵심적인 시스템 소프트웨어입니다. 이번 강의에서는 운영체제에 대한 전반적인 개요에 대해 알아봅니다. 우선 운영체제의 정의와 역할을 살펴본 후, 운영체제를 구성하는 기본적 요소인 프로세스 … Read more