본문 바로가기

컴퓨터 공학/운영체제

(7)
운영체제 총정리 모음 성균관대학교 소프트웨어학과 엄영익 교수님의 운영체제 수업을 듣고 정리한 자료입니다. 추후 Notion에 정리한 내용을 바탕으로 블로그에 보기 좋은 글로 옮겨놓을 예정입니다. Operating System (엄영익 교수님) A new tool for teams & individuals that blends everyday work apps into one. www.notion.so
5. 프로세스 동기화 Process Synchronization 이번 글에서는 프로세스 동기화에 대해 알아보겠습니다. 프로세스 동기화 프로세스 동기화의 필요성 오늘 날 대부분 컴퓨터 시스템은 하나의 하드웨어 안에 여러 개의 프로세스가 존재할 수 있는 멀티테스킹 시스템/멀티프로세스 시스템입니다. 하나의 하드웨어 안에서 동작하는 여러 프로세스들은 각각 독립적으로 동작하기 때문에 기본적으로는 프로세스 간 동기화가 전혀 이루어져 있지 않습니다. 이는 프로세스들이 공유 자원에 접근하려 할 때, 공유 자원의 integrity를 손상시킬 수 있기 때문에 문제가 발생합니다. 따라서 공유 자원에 대한 동기적 접근시 데이터 무결성을 해치지 않기 위해 운영체제는 프로세스 동기화 (process synchronization) 매커니즘을 가지고 있..
4 (2). 프로세스 스케줄링 : 스케줄링 기법 프로세스 스케줄링 기법 지난 글에서는 프로세스 스케줄링의 개념, 대표적인 성능 지표, 스케줄링 기준, 스케줄링 레벨에 대해 설명하였습니다. 지난 글에 이어 이번 글에서는 프로세스 스케줄링 기법에 대해 알아보겠습니다. 프로세스 스케줄링 기법 프로세스 스케줄링 기법의 필요성 프로세스들은 컴퓨터 하드웨어 자원을 이용하여 작업을 처리합니다. 컴퓨터 시스템에 하나의 프로세스만 존재한다면 하드웨어 자원은 계속 사용가능한 상태일테니 CPU를 사용하기 위해 대기하거나 입출력 장치에서 입출력 요청을 하고, 응답을 받은 뒤 다시 CPU를 사용할 때에도 기다릴 필요가 없을 것입니다. 하지만 컴퓨터 시스템에 하나의 프로세스만 있는 경우는 거의 없고, 대부분은 프로세스의 개수가 CPU 개수보다 많기 때문에 프로세스간 CPU 사..
4. 프로세스 스케줄링 Process Scheduling 이번 글에서는 프로세스 스케줄링에 대해 간단히 알아보겠습니다. 스케줄링은 멀티프로그래밍/멀티태스킹시스템에서 하는 것 멀티프로그래밍/멀티태스킹시스템 = 시스템안에 여러 개의 프로세스가 존재하여 메모리 cpu를 번갈아가며 사용하는 것. Cpu utilization을 높이는 것이 중요한 issue CPU/processor = time sharing (시분할 지원) Memory = space sharing (공간할 지원) = 프로세스 간 공간을 나눠서 메모리를 사용 Performance Measures Response Time : 요청을 보낸 뒤 그 요청에 대한 첫번째 response(응답)이 올때 까지의 시간을 의미합니다. 사용자가 컴퓨터의 어떤 아이콘을 눌러 작업 처리를 요..
3. 운영체제 공부를 위한 사전 지식 Backgrounds for OS 이번 글에서는 운영체제 공부를 위한 사전 지식에 대해 간단히 알아보겠습니다. 알아두면 운영체제 공부에 도움이 되는 개념들로 간단하게만 짚고 넘어간 후 정확한 이해가 필요한 개념은 추후 다시 다루도록 하겠습니다. 가벼운 마음으로 읽어주세요 :) Dual Mode Operation CPU는 두가지 모드에서 동작합니다. user mode : CPU가 사용자 어플리케이션을 실행하고 있을 때 kernel mode : 커널 안에 있는 프로그램을 실행하고 있을 떄 ( 이때 실행되는 기능들은 아주 중요하기 때문에 사용자 프로그램에서 접근 할 수 없음) Privileged Instruction 는 machine, instruction, set으로 구성된 컴퓨터 시스템 중 일부 명령을 가..
2. 운영체제의 개념, 주요 기능, 구조 운영체제의 개념과 시스템 구조 이번 글부터 본격적으로 운영체제 공부를 시작해봅시다! 이번 글에서는 운영체제의 개념, 주요 기능, 그리고 컴퓨터 시스템의 구조에 대해 설명하겠습니다. 운영체제의 개념 Wikipedia 위키에서는 운영체제를 다음과 같이 정의합니다. 컴퓨터 하드웨어와 소프트웨어 자원을 관리하고, 컴퓨터 프로그램 (어플리케이션)을 위한 일반적인 서비스를 제공하기 위한 시스템 소프트웨어로 간단하게는 프로그램(어플리케이션)과 컴퓨터 하드웨어 사이에서 매개체 역할을 하는 소프트웨 즉, 운영체제는 호스트로서 하드웨어 자원들을 관리하며 게스트인 어플리케이션이 하드웨어의 세부사항을 모르고도 이를 사용할 수 있도록 서비스를 제공하는 것입니다. 운영체제 시장 (2019.03 기준) 많은 사람들에게 익숙한 UI..
1. 운영체제 공부를 시작하며 운영체제 개요 하드웨어 영역의 안정성과 효율적 관리를 위해 소프트웨어 어플리케이션은 컴퓨터 하드웨어 영역에 직접 접근할 수 없습니다. 그렇다면 사용자들은 어떻게 하드웨어 장치에 접근할 수 있는 것일까요? 바로 운영체제가 소프트웨어와 하드웨어 사이에서 매개체 역할을 하기 때문에 가능한 것입니다. 지금부터 컴퓨터의 효율적인 사용을 위해 반드시 필요한 운영체제에 대해 공부한 내용을 소개해 드리겠습니다. 운영체제 란 운영체제의 개념 운영체제는 대표적인 시스템 소프트웨어로 소프트웨어의 각종 명령 및 요청을 받아 하드웨어 장치에 접근할 수 있게 해주고, 하드웨어로부터 오는 요청을 처리하고, 사용자가 하드웨어와 소프트웨어 사이에서 조율할 수 있도록 인터페이스를 제공합니다. 좁은 의미의 운영체제는 운영체제의 핵심으로..