관리 메뉴

한다 공부

[OS] 운영체제란? 본문

CS/OS

[OS] 운영체제란?

사과당근 2023. 5. 1. 22:16

벌써 5월이네요

 

3-1학기의 기억이 흐릿해진 시점에서 운영체제를 복습하고자 합니다.

운영체제가 참 중요하다는 것을 여러번 느꼈기 때문....

 

그래서...

 

운영체제란?

- 하드웨어 바로 위에 설치되는 소프트웨어

- 컴퓨터 시스템의 자원을 효율적으로 관리

 

목적

- 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 제공

: 실제로는 한 대의 컴퓨터를 여려명이 쓰는 거지만, 한 사용자가 각자 한 대의 컴퓨터를 쓰는 것 처럼 느껴지도록

- 컴퓨터 시스템의 자원을 효율적으로 관리

: 효율성 + 형평성 (사용자가 모두 형평성있게 자원을 쓸 수 있도록)

 

분류

1. 동시 작업 가능 여부

- 단일 작업 : 한 번에 하나의 작업 (옛날)

- 다중 작업 : 한 번에 여러 작업 (요새)

2. 사용자 수

- 단일 사용자 : 단일 작업은 거의 단일 사용

- 다중 사용자 : 동시에 접속 가능

3. 처리 방식

- 일괄 처리 : 작업들을 모아서 한 번에 처리 (OMR같은 작업 카드 사용)

- 시분할 : 시간 단위로 작업을 분할하여 사용, 짧은 응답 시간

- 실시간 : 데드 라인 존재, 정해진 시간 안에 반드시 종료됨이 보장 (미사일, 반도체 등에서 사용)

 

용어

- Multi-tasking : (사실 CPU는 매 순간 하나의 작업을 처리하지만 시분할 등을 사용해서) 작업이 여러개 동시에 수행되는 것 처럼 처리, 하나의 작업이 끝나기 전에 다른 작업 수행 가능

- Multi-programming : "메모리"에 여러 프로그램이 동시에 올라감

- Time Sharing : "CPU"의 시간을 분할하여 처리

- Multi-process : 여러 프로그램이 동시에 실행

ㄴ 이 네 가지 용어들은 비슷하게 사용 됨

- Multi-processor : processor는 CPU를 의미, CPU가 여러개 달린 컴퓨터를 의미

 

예시

- 유닉스 : 대형 컴퓨터용, 어셈블리 및 기계어로 OS를 만들기 힘들어서 C언어(고급언어)를 만들어냄.., 소스 코드 공개함, 높은 이식성을 가짐, 핵심만 커널에 유틸리티 기능은 커널 밖에 구현, Linux 등 버전이 다양함

- 윈도우 : 개인 컴퓨터용, DOS (메모리가 640KB로 아주 작음), MS Window 등 존재

 

자원 관리

- CPU 스케줄링 : CPU를 어떤 프로그램에게 할당할지

- 메모리 관리 : 디스크에서 읽어오면 시간이 오래걸려서, 메모리에 실행될 프로그램을 미리 올려놔야하는데 메모리 공간은 한정되어 있다. 어떤 프로그램을 메모리에 올려야할지, 어떤 프로그램을 메모리에서 쫓아내야할지

- 파일 관리 : 파일을 쪼개서 저장할지, 연속적으로 저장할지, 디스크 헤드의 이동을 어떻게 줄일지 등 (디스크 스케줄링은 엘레베이터 동작과 비슷함)

- 입출력 관리 : I/O 디바이스는 훨씬 느린데, 어떻게 정보를 주고 받을지 (인터럽트 기반, 인터럽트 걸어서 CPU에게 알려줌)