일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 깃허브
- 깃
- Effective Java
- github
- 컴퓨터과학
- 자바
- 메모리
- package-private
- 우리카드
- java
- 뮤텍스
- 알고리즘
- 프로그래밍
- 세마포어
- 스프링
- 개발
- 스터디
- IT
- 운영체제
- Public
- OS
- 신입
- 디지털
- 공채
- CS
- 컴퓨터공학
- 정보처리기사
- 이펙티브 자바
- spring
- 신입사원
Archives
- Today
- Total
주니어 개발자 성장기
운영체제란? 목적과 분류(22/07/09) 본문
운영체제란?
정의: 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
좁은 의미의 운영체제 "커널"
- 운영체제의 핵심(core) 부분으로 메모리에 상주하는 부분
넓은 의미의 운영체제
- 커널 뿐만 아니라 각종 주변 시스템 유틸리티를 포함한 개념
목적
크게 2가지 단으로 볼 수 있다.
OS위에 올라가 있는 사용자 및 소프트웨어 계층 사이, 그리고 OS와 하드웨어 사이가 있다.
1. 사용자, 소프트웨어 & OS 간의 인터랙션
- 동시의 사용자/ 프로그램들이 각각 독자적 컴퓨터에서 수행되는 것 같은 환상을 제공한다.
- 복잡한 하드웨어 조작을 OS가 대행해준다.
2. OS & 하드웨어 간의 인터랙션
- 가장 핵심적인 기능
- 컴퓨터 시스템의 자원을 효율적으로 관리 <- 최우선적 목표
- 프로세서, 기억장치, 입출력 장치 등(하드웨어 자원)의 효율적 관리
- CPU 컨택스트 스위칭, 메모리 페이징 기법 등
- 효율성외에도 형평성도 부차적으로 고려된다.
- 사용자 및 운영체제 자신의 보호
- 프로세스, 파일, 메시지(소프트웨어 자원) 등을 관리
분류
운영체제 분류의 기준 3가지이다.
1.동시 작업 가능 여부
- 단일 작업 (single tasking)
- 한 번에 하나의 작업만 처리
- 예) MS-DOS -> 프롬프트 상에서는 한 명령의 수행을 끝내기 전에 다른 명령을 수행시킬 수 없음
- 다중 작업 (multi tasking)
- 동시에 두 개 이상의 작업 처리
- 예) UNIX, MS Windows 등에서는 한 명령의 수행이 끝나기 전에 다른 명령이나 프로그램을 수행할 수 있음
2. 사용자의 수
- 단일 사용자(single user)
- 예) MS-DOS, MS Windows
- 다중 사용자(multi user)
- 예) UNIX, NT server, 윈도우도 때에 따라 가능
3. 처리 방식
- 일괄 처리(batch processing)
- 역사속의 시스템으로 interactive하지 않다.
- 작업 요청의 일정량을 모아서 한꺼번에 처리
- 작업이 완전 종료될 때까지 기다려야 함
- 예)초기 Punch Card 처리 시스템
- 시분할(time sharing)
- 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
- 일괄 처리 시스템에 비해 짧은 응답 시간을 가짐
예) UNIX - interactive한 방식
- 사용자 맞춤식 시스템 <- 사용자가 느낄 때는 동시에 빠르게 실행하면서 효율적으로 자원을 배분
- 현대의 범용 컴퓨터의 방식
- 실시간(Realtime OS)
- 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는(데드라인 존재) 실시간 시스템을 위한 OS
- 예) 원자로/공장 제어, 미사일 제어, 반도체 장비, 로보트 제어 등 특수 목적 컴퓨터
- 실시간 시스템의 개념 확장
- Hard realtime system (경성 실시간 시스템) <- 데드라인을 반드시 지켜야함 (결과가 치명적)
- Soft realtime system (연성 실시간 시스템) <- 데드라인이 있긴 하지만 어긴다고 해서 치명적이진 않다.
참고 용어들
*멀티 태스킹(Multitasking)은 일반적, 용어
멀티 프로그래밍(Multiprogramming)
타임쉐어링
멀티프로세스(Multiprocess)
=> 위 용어들은 컴퓨터에서 여러 작업을 동시에(concurrently) 수행하는 것을 뜻한다.
- Multiprogramming은 여러 프로그램이 메모리에 올라가 있음을 강조하는 단어
- Time Sharing은 CPU의 시간을 분할하여 나누어 쓴다는 의미를 강조하는 단어
=> CPU 하나로 멀티 태스킹을하는 것
**Multiprocessor
: 하나의 컴퓨터에 CPU(processor)가 여러 개 붙어 있음을 의미한다.
즉, 멀티프로세서는 이번 강의에서 주로 다루는 내용이 아니다.
'CS스터디 > 운영체제' 카테고리의 다른 글
Process Synchronization - Monitor (0) | 2024.04.02 |
---|---|
Process Synchronization - Dining-Philosophers Problem (0) | 2024.04.01 |
Process Synchronization - Readers-Writers Problem (0) | 2024.04.01 |
Process Synchronization - Bounded Buffer Problem (0) | 2024.03.30 |
운영체제의 예시(22/07/10) (0) | 2022.07.10 |