본문 바로가기

운영체제12

[ OS 기초 ] 12. I/O System and Disk Management 1. 입출력(I/O) 메커니즘이란? 2. 운영체제와 입출력(I/O) 3. 디스크 스케줄링 4. RAID 아키텍처 00 개요 컴퓨터로 게임을 할 때 아이템을 쓰기 위해서, 이동하기 위해서 마우스를 클릭하거나 키보드를 누른다. 이러한 마우스 클릭, 키보드 누름과 같은 행동은 입출력에 해당하는데, 운영체제는 이런 행동을 컴퓨터가 인식해 프로그램이 사용자가 의도한 결과(아이템 선택 또는 이동)를 화면상에 보여주는 과정에도 관여하고 있다. 이번 차시에서는 입출력 메커니즘과 이 과정에서 운영체제가 제공하는 기능들에 대해 알아보았다. 뿐만 아니라 디스크의 입출력 성능을 향상하기 위한 스케줄링 기법과 RAID(Redundant Array of Inexpensive Disks) 아키텍처에 대해 살펴보았다. 01 입출력 .. 2021. 7. 27.
[ OS 기초 ] 11. File System (2) 1. 디스크 시스템(disk system) - 파일이 저장되는 곳 2. 파일 시스템(file system) - 파일에 대한 이해와 디렉토리, 파티션 3. 디렉토리 시스템(directory structure) - 다양한 디렉토리 구조 4. 파일 보호(file protection) - 파일 보호/접근 제어 방법 5. allocation methods - 구현 및 메모리 할당 기법 00 개요 지금까지 파일의 개념과 디렉토리, 파티션 등 파일 시스템의 기본 구조에 대해 살펴보았고, 다음으로 파일 보호 구현 방법과 파일 저장 시 메모리 할당 및 관리 방식에 대해 알아보았다. 01 파일 보호 파일 보호(File Protection)란 파일에의 부적절한 접근을 막는 것으로, 다중 사용자 시스템에서 특히 중요하다. 예.. 2021. 7. 23.
[ OS 기초 ] 09. Virtual Memory (2) (앞에서 이어) 비연속 메모리 할당 기법과 각각의 특징, 주소 매핑, 메모리 관리, 공유 및 보호 1. segmentation system 2. hybrid paging and segmentation system 00 개요 운영체제의 주 기능 중 하나인 메모리 관리는 크게 메모리 연속 할당과 비연속 할당으로 구분할 수 있다. 앞서 연속 할당 방법의 Uni-programming, Multi-programming(FPM, VPM)에 대해 알아보았고 대표적인 비연속 할당 방법(Paging System, Segmentation System, Hybrid) 중 페이징 시스템까지 알아보았다. 이번 차시에서는 남은 두 방법인 세그멘테이션 시스템과 페이징시스템을 세그멘테이션 시스템과 결합한 하이브리드 시스템에 대해 살.. 2021. 7. 13.
[ OS 기초 ] 09. Virtual Memory 1. 메모리 비연속 할당과 address mapping 2. Paging System - 특징, 주소 매핑, 관리 및 공유, 보호 00 개요 앞서 메모리 관리와 연속 할당 기법에 대해 살펴보았고 다음은 비연속 할당에 대한 내용이다. 비연속 할당은 메모리를 어떻게 할당하는 방법이며 연속 할당과의 차이점은 무엇인지, 대표적인 비연속 할당 기법인 paging, segmentation, hybrid paging and segmentation system에 대한 내용을 알아보았다. 01 비연속 할당과 address mapping 비연속 할당은 프로세스가 메모리에 올라갈 때 연속된 공간에 올라가는 게 아닌 띄엄띄엄 올라가는 메모리 할당 방식이다. 이때 띄엄띄엄 올리기 위해서는 프로세스를 여러 개의 단위로 분할해주는.. 2021. 7. 12.
[ OS 기초 ] 08. Memory Management 1. 메모리 관련 개념 - 종류, 계층, 워드와 블록, 주소 바인딩(address binding), Dynamic loading, Swapping 2. 메모리 할당 - 연속적 메모리 할당 : Uni programming / Multi programming (FPM, VPM)과 배치 전략 - 비연속적 메모리 할당( 다음에 다룰 것) 00 개요 운영체제는 자원을 잘 관리해 사용자와 응용 프로그램에 서비스를 제공하는 역할을 한다. 지금까지는 운영체제의 기능 중 프로세스 관리에 대해 살펴봤고, 다음에 나올 부분은 메모리 관리다. 운영체제가 메모리를 관리한다는 것은 뭔지, 어떻게 관리를 하는지에 대해 살펴보기 위한 기본적인 개념을 우선 살펴보고 메모리 할당 방식에 대해 알아보았다. 01 메모리, 메모리 관련 개념.. 2021. 7. 12.
[ OS 기초 ] 06. 프로세스 동기화, 상호배제 (2) - 상호배제 기법 1. SW solutions - 데커, 피터슨, 다익스트라 알고리즘 2. HW solutions - TAS Instruction 3. OS supported SW solutions - Spinlock, Semaphore, Eventcount & Sequencer 4. Language Level Solution - Monitor 00 도입 여러 프로세스가 동시에 같은 자원을 필요로 하는 상황에서 발생할 수 있는 문제를 해결하기 위해 상호 배제, 즉 임계 공간(critical section)에는 한 번에 하나의 프로세스만 들어갈 수 있도록 구현해야 함을 알 수 있었다. 이러한 상호 배제 기법에는 소프트웨어를 통한 구현, 하드웨어를 통한 구현, 운영체제의 지원을 기반으로 구현하거나 프로그래밍 언어를 통한 구현.. 2021. 7. 2.
[ OS 기초 ] 05. 스케줄링 알고리즘 대표적인 스케줄링 알고리즘 1. FCFS (First Come First Service) 2. RR (Round Robin) 3. SPN (Shortest-Process Next) 4. SRTN (Shortest Remaining Time Next) 5. HRRN (High Response Ratio Next) 6. MLQ (Multi Level Queue) 7. MFQ (Multi-level Feedback Queue) 01 FCFS - 선착순 알고리즘 : 가장 먼저 도착한 프로세스부터 프로세서를 할당해주는 알고리즘 - FCFS가 적절한 시스템 : 배치 시스템 (일괄처리 시스템) - 빠른 응답보다 빨리 처리해주는게 더 중요 - FCFS가 부적합한 시스템 : 대화형 시스템 (interactive syst.. 2021. 6. 29.
[ OS 기초 ] 04. 프로세스 스케줄링 01. 프로세스 스케줄링의 개념 02. 스케줄링의 기준 03. 스케줄링 단계(level) 04. 스케줄링 정책 00 도입 앞서 배웠던 내용을 간단히 정리해보면, 프로세스는 자원을 할당받아 목적을 달성하기 위한 작업을 수행한다. 운영체제는 다양한 방식으로 프로세스를 처리한다 (일괄처리, 시분할 등등) 다중 프로그래밍 시스템에서는 여러 프로세스를 동시에 처리해야 한다 이때 운영체제가 어떤 프로세스에세 어떤 자원을 먼저 할당해줄지 결정하는게 스케줄링 01 프로세스 스케줄링 우리가 사용하는 시스템은 멀티 프로그래밍 시스템으로 여러 프로세스를 동시에 실행한다. 프로세스가 여러개인만큼 자원인 프로세서(cpu)를 번갈아가면서 사용해야한다. 따라서, 각 프로세스 수행을 위한 cpu를 할당해야 하는데(=자원을 나누어 사.. 2021. 6. 24.
[ OS 기초 ] 02. 프로세스 관리 1. 프로세스와 JOB의 차이 2. 프로세스의 정의와 종류 3. 관련 개념(자원, PCB) 4. 프로세스의 상태 5. 인터럽트와 문맥교환(context swithcing) 00 도입 프로세스를 아주 단순화하면 '실행의 주체'다. 평소 컴퓨터를 쓰다가 응답이 없을 때 ctrl+alt+delete 클릭해서 열어보는 작업관리자에서도 프로세스와 각 프로세스가 얼마나 cpu를 할당받고, 메모리를 사용하고 있는지 확인할 수 있다. 운영체제의 주 기능 중 하나인 프로세스 관리에 대해 알아보기 위해 먼저 프로세스란 무엇이며, 어떤 방식으로 프로세스가 동작하는지(프로그램이 실행되는지, 작업이 수행되는지) 이해한 뒤 인터럽트의 개념까지 살펴보았다. 01 프로세스 프로세스를 이해하려면 먼저 Job(작업)의 개념도 알아야 한.. 2021. 6. 23.
[ OS 기초 ] 01. OS개요(2) 1. 운영체제의 구조(내부) 2. 운영체제의 기능 00 도입 복습 : 운영체제는 하드웨어를 잘 관리해 사용자와 응용 어플리케이션 프로그램에 서비스를 제공하는 것 01 운영체제의 구조 운영체제는 크게 커널과 유틸리티로 나눌 수 있다 01-1 커널 단어 의미 그대로 알맹이, 즉 핵심이다. 커널은 우리가 가장 자주 사용하는 핵심 기능(프로세서, 메모리 관리 등)을 모아놓은 부분이다. 이러한 기능들은 항상 사용하는 기능이라서 메모리에 상주하고 있어 상주 프로그램, 핵, 관리자 프로그램, 제어 프로그램 등으로 불린다. 02-2 유틸리티 유틸리티는 운영체제에서 커널을 제외한 부분으로, 자주 사용하지는 않지만 가끔씩 사용하기때문에 비상주 프로그램에 속한다. 이들 프로그램은 필요할 때만 메모리에 올려서 실행한다. 이를.. 2021. 6. 21.
[ OS 기초 ] 01. OS개요 1. 운영체제의 역할에 대한 간단한 정리 2. 운영체제가 컴퓨터 상에서 어디에 위치하며, 운영체제는 어떤 방식으로 작동하는지 3. 운영체제에는 어떤 것들이 있는지 00 도입 운영체제를 한 마디로 정리하면 '하드웨어를 잘 관리해서 유저와 응용 프로그램에 서비스를 제공' 해주는 컴퓨터 시스템이다. 이때 '잘 관리한다'의 '잘'은 항상 상대적으로 쓸 수 있는 표현이다. 무언가 전보다 더 나아졌으면 이전보다 잘했다고 볼 수 있는 것처럼. 운영체제도 마찬가지로 과거에 사용하던 운영체제의 문제를 개선하면서 점점 발전해왔다. 이 과정을 살펴보면서 운영체제의 작업 수행방식에 따라 종류를 나눠 살펴보고 다른 기준에 따라서 구분할 수 있는 운영체제의 종류도 살펴보았다. 01 운영체제의 역할 운영체제 : 하드웨어를 잘 관리.. 2021. 6. 20.
[ OS 기초 ] 00. CS 개요 1. 컴퓨터, 어떻게 돌아가는걸까 2. 그럼 OS가 그 과정에서 담당하는 역할은? 3. 컴퓨터 하드웨어와 OS의 관계 - 프로세서, 메모리, 주변장치를 중심으로 00 도입 컴퓨터에 저장되어있는 영화를 볼 때 우리는 원하는 영화 파일을 마우스로 클릭하고 기다리면 화면에 비디오 플레이어가 뜨며 영상을 볼 수 있게 된다. 이 클릭을 통해 전달된 어떤 정보가 컴퓨터 내부에서 어떤 과정을 거쳐, 컴퓨터 어딘가에 저장되어있던 영화를 불러와 내가 보는 모니터에 띄워주는 과정을 거친 것이다. 컴퓨터에 대해 잘 몰라도 컴퓨터 안에 여러 물리적인 장치들이 있다는 것, 그리고 이 물리적인 장치들이 서로 통신을 하고 특정 작업을 한다는 건 알 수 있다. 이때 이 물리적인 장치를 하드웨어라 통칭하는데, 넓은 관점에서 이 하드웨.. 2021. 6. 17.