반응형
운영체제
컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층을 말한다.
- 작은범위 → 운영체제 핵심 부분으로 부팅시 메모리에 상주하는 부분
- 큰범위 → 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념
운영체제 목적
운영체제(OS, Operating System)는 컴퓨터 시스템의 자원들(소프트웨어 자원, 하드웨어 자원)을 효율적으로 관리하는 것이 가장 큰 목적으로 사용자가 컴퓨터 편리하게 사용하도록 하기 위한 목적을 가지고 있다. + 보안까지
- 하드웨어 자원: CPU, Memory, I/O device 등
- 소프트웨어 자원: 프로세스, 파일, 메시지등
운영 체제의 분류
동시 작업 가능 여부, 사용자의 수,
- 단일 작업(single tasking) : 한 번에 하나의 작업만 처리한다. (MS-DOS프롬포트 상에서는 한 명령의 수행을 끝내기 전에 다른 명령어을 수행시킬 수 없다.)
- 다중 작업(multi tasking) : 동시에 두 개 이상의 작업을 처리한다. (UNIX,MS Windows 등에서는 한 명령의 수행이 끝나기 전에 다른 명령이나 프로그램을 수행할 수 있다.)
사용자의 수
- 단일 사용자, 다중 사용자(다른 사용자의 정보를 볼 수 없게 보안쪽도 신경써야 한다.)
처리 방식
- 일괄 처리 (batch processing)
- 작업 요청의 일정량을 모아서 한번에 처리한다.
- 작업이 완전히 종료될 때까지 기다려야 한다.
- 과거의 운영체제 OMR 카드등으로 작업을 한번에 모아서 처리한다.
- 시분할 (time sharing)
- 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
- 일괄 처리 시스템에 비해 짧은 응답 시간을 가진다.
- 가장 큰 목적으로는 사람이 느끼기에 빠르게 처리 해주면서 동시에 주어진 자원을 최대한 활용하는게 목적으로 정확한 시간을 지켜주거나 하는것 으니며 여러 사람 사람에 특화된 현재 컴퓨터
- 실시간 컴퓨터(Realtime OS)
- 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간시스템을 위한 OS
- deadline 꼭 잘지켜야되는 공장제어,미사일 제어 → hard realtime system (경성 실시간 시스템)
- deadline은 있지만 안지켜도 크게 문제안되는것들(멀티미디어 시스템, 영화등) → soft realtime system (연성 실시간 시스템)
- 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간시스템을 위한 OS
실시간 컴퓨터 ↔ 시분할 컴퓨터
- 둘다 빨라보이고 둘다 interactive한 비슷한 특징이 있는거 같지만 개념적으로 다르다.
- 실시간은 deadline이 있어서 정해진 시간안에 반드시 결과가 나오는 것을 보장해주는 시스템
- 시분할 → 범용 컴퓨터 , 실시간 → 특수한 목적을 가진 시스템 그작업이 정해진 시간안에 처리 되어야 하는 것들
- 스마트폰, 데스크탑등 OS는 보통 realtime OS 사용안함 → 영화는 보지만 time sharing 컴퓨터
- 하지만 요즘은 스마트폰으로 블랙박스 네비게이션 등때문에 데드라인을 지키긴해야됨 → 연구 계속되고 있음
혼돈하기 쉬운 용어들
- Multitasking : 여러 작업이 동시에 처리 된다. 일반적인 용어 CPU는 매수간 하나만 이지만 하나에 프로그램이 짧은 시간동안 수행되고 다른 프로그램이 빠르신간으로 처리되면서 동시에 처리되는 것처럼 보이는 것
- Multiprogramming : 여러 프로그램이 메모리에 올라가 있음을 강조
- Time Sharing : CPU의 시간을 분할하여 나누어 쓴다는 의미를 강조
- Multiprocess : 여러 프로그램이 동시에 수행이 된다.
위에 4가지는 비슷한 말임 강조하는게 조금 다르다. 밑에는 다름
processor → 보통 CPU를 말한다.
- Multiprocessor(다중 처리기): 하나의 컴퓨터에 CPU(processor)가 여러 개 붙어 있음을 의미
- 위의 용어들은 컴퓨터에서 여러 작업을 동시에 수행하는 것을 뜻한다.
운영체제의 이슈
- CPU를 누구 한테 줄까?
- 일반적으로 CPU 스케줄링 아주 짧은 간격으로 프로그램들한테 줬다 뺏었다 해야된다. (선착순 x)
- CPU 속도가 너무 빠른데 메모리 디스크 각각 속도가 달라서 이슈가 생기게 된다.
- 메모리 관리는 한정되어 있는데 어떻게 쪼개서 쓸까?
- 메모리 크기는 한정되어 있는데 프로그램이 너무 많아 쪼개서 사용하게 되면 디스크에서 읽어오고 해야되는 빈도가 늘어날것이다.(너무 오래걸리는 일이 발생함 디스크에서 메모리까지 읽어와야 되기 때문에) 메모리에 너무 많이 올리기 보다는 CPU가 원활하게 동작할 수 있는정도 만 올리고(walking set) 디스크랑 메모리 왔다 갔다 관리를 잘 해주어야 된다.
- 메모리에서 디스크로 쫓아내는 과정을 어떻게 해야 될까?
- 컴퓨터가 미래를 예측하는 방법은 어떠한 데이터가 올라온 이유로 많이 사용되고 최근에 사용되거나 오래 사용하면 디스크로 보내지 않게 처리를 해주어야 된다.
- 디스크에 파일을 어떻게 보관할까?
- 조각으로? 연속적으로? 디스크는 접근방식이 디스크 안에 헤드가 움직이면서 디스크를 읽어야 한다.(메모리랑 다름) 디스크 특성에 맞게 파일을 관리하고 디스크도 읽고 쓰는 각각의 요청들을 헤드가 움직이면서 데이터를 읽고 쓰기 때문에 CPU처럼 스케줄링이 필요하다.
- 헤드의 움직임을 최소화 하면서 어떻게 많이 처리할까?
- 헤드에 가까운 요청이 왔다면 조금 나중에 들어왔지만 먼저 처리해주는 식으로 순서를 바꿔서 디스크 헤드의 이동을 줄이는 방법을 사용하면 전체적으로 성능이 좋아진다.
- EX) 엘러베이터 스케줄링이랑 비슷함 100층 건물에서 1층 , 100층, 2층, 99층 순서대로 입력이 들어왔을 때 먼저들어온 순서대로 처리해버리면 효율적이지 않다. 같은 방향에서 타는 사람들은 태워주는 효율적인 관리가 필요하기 때문에 디스크도 중간에 요청이 들어오면 처리를 하면서 헤드를 움직이는 방법이 효율적이다.
- 각기 다른 I/O device와 컴퓨터 간에 어떻게 정보를 주고 받게 관리해줄꺼야?
- I/O device들은 CPU, 메모리보다 훨씬 느리기 때문에 인터럽트 발생하면 CPU가 다음작업을 하기전에 인터럽트 수행하고 작업 처리 방식으로 인터럽트에 따라서 관리해야 된다.
- EX) command line interpreter → 커맨드에 00이라고 입력하면 그것을 해석하고 실행해주는 것도 운영체제가 하는일
운영체제의 목적
반환시간(Turn Around Time) | 시스템에 작업을 의뢰한 시간부터 처리가 완료될 떄까지 걸린 시간 |
처리능력(Throughput) | 일정 시간 내에 시스템이 처리하는 일의 양 |
신뢰도(Reliabilty) | 시스템이 주어진 문제를 정확하게 해결하는 정도 |
사용가능도(Availability) | 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도 |
운영체제의 기능
1. 프로세서, 기억장치, 입출력장치, 파일 및 정보 등의 자원을 관리합니다.
2. 자원을 효율적으로 관리하기 위해 자원의 스케줄링 기능을 제공합니다.
3. 사용자와 시스템간의 편리한 인터페이스를 제공합니다.
4. 시스템의 각종 하드웨어와 네트워크를 관리, 제어합니다.
5. 데이터를 관리하고, 데이터 및 자원의 공유 기능을 제공합니다.
6. 시스템의 오류를 검사하고 복구합니다.
7. 자원 보호 기능을 제공합니다.
8. 입 출력에 대한 보조 기능을 제공합니다.
9. 가상 계산기 능력을 제공합니다.
Reference
반응형
'CS > 운영체제' 카테고리의 다른 글
DeadLock(교착 상태) (2) | 2024.01.22 |
---|---|
운영체제(OS, Operating System)(2) (0) | 2022.12.29 |