일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 카카오
- UX
- html
- 백준
- 자료구조
- 코드스테이츠
- web
- superstarjypnation
- 프로토타입
- 회고
- 프로그래머스
- 운영체제
- level1
- useState
- mysemester
- 자바스크립트
- 해시테이블
- javascript
- REST_API
- 큐
- UI
- React
- vercel
- Next.js
- Til
- 스택
- redux
- CSS
- 생활코딩
- 30daysdowoonchallenge
- Today
- Total
데굴데굴
01. 운영체제 개요 본문
반효경 교수님의 KOCW 강의 '운영체제'와 저서 '운영체제와 정보기술의 원리'를 학습하며 정리한 글입니다.
운영체제의 정의
운영체제(operating system): 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어
하드웨어를 동작시키기 위한 기본적인 소프트웨어
하드웨어 위에 운영체제를 설치해 사용자가 컴퓨터를 사용할 수 있는 상태로 만들어주는 것
좁은 의미의 운영체제: 메모리에 항상 상주하고 있는 운영체제의 부분 = 커널 kernel
넓은 의미의 운영체제: 커널 뿐만 아니라 운영체제의 다른 유틸리티도 포함
이런 유틸리티들은 메모리에 상주하지 않는 독립적인 소프트웨어이지만 운영체제에 함께 설치되어 운영체제로 간주하기도 한다.
강의에서 앞으로 언급할 운영체제는 좁은 의미의 운영체제
운영체제의 기능
두 가지 측면에서 바라볼 수 있음.
- 하드웨어 측면: 컴퓨터 시스템 내의 자원을 효율적으로 관리하는 역할
- 사용자 측면: 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공하는 역할
자원: CPU, 메모리, 하드디스크 + 소프트웨어 자원까지 포함
최우선 목표는 효율성이지만, 성능을 높이려고 하다보면 불균형이 생길 수도 있기 때문에 균형적으로 분배하는 역할도 해야 한다.
또한 메모리에 올라오는 프로그램들에 대한 보안도 신경써야 한다.
운영체제의 분류
동시 작업을 지원하는가?
- 단일 작업용 운영체제 single tasking
- 한 번에 하나의 작업만 실행할 수 있다.
- ex: DOS(Disk Operating System)
- 다중 작업용 운영체제 multi tasking
- MS 윈도우, 유닉스(UNIX)
다중 작업용 운영체제에서 여러 프로그램이 동시에 실행되는 것처럼 보일 수 있지만, 실제로는 아주 빠르게 교체되는 것이다.
메모리는 여러 프로그램들이 조금씩 메모리 공간을 공유하며 올라가있을 수 있다. -> multi-programming system
- MS 윈도우, 유닉스(UNIX)
다중처리기 시스템 multi-processor system은 한 컴퓨터에 CPU가 여러 개 설치된 경우를 말한다.
다중 사용자에 대한 동시 지원을 하는가?
- 단일 사용자용 운영체제
- ex: DOS같은 단일 작업용 운영체제, MS 윈도우 같은 다중 작업용 운영체제 등
- 다중 사용자용 운영체제 - 여러 사용자가 동시에 접속해 사용할 수 있게 하는 운영체제
- ex: 이메일 서버, 웹 서버
작업 처리 방식
- 일괄 처리(batch-processing): 요청된 작업을 일정량씩 모아서 한꺼번에 처리하는 방식
- 사용자 입장에서 응답 시간이 길다는 단점
- ex: 펀치 카드 시스템
- 시분할 방식(time sharing system): 컴퓨터의 처리 능력을 여러 시간 단위로 분할해 사용하는 방식
- 사용자의 요청에 대한 결과를 곧바로 얻을 수 있어 대화형 시스템(interactive system)이라고도 함
- 실시간(real time): 정해진 시간 안에 어떠한 일이 반드시 처리됨을 보장해야 하는 시스템에서 사용하는 방식
- 일정 시간 안에 완료되지 않으면 동작이 안 되거나 큰 위험을 초래할 수 있는 시스템에서 사용
- ex: 원자로, 공장 제어 시스템, 미사일 제어 시스템
- 경성 실시간 시스템(hard realtime system) - 시간을 지키지 못하면 매우 위험해지는 시스템 (로켓, 원자로 등)
- 연성 실시간 시스템(soft realtime system) - 데이터가 정해진 시간 단위로 전달되어야 기능을 수행할 수 있는 시스템 (동영상 스트리밍 등)
운영체제의 예
MS 윈도우
윈도우 95: DOS라는 운영체제에서 실행되지 않고 그 자체로 하나의 운영체제가 되도록 제작한 것. 이후 발전하며 윈도우 98, 윈도우 Vista, 윈도우 7, 윈도우 10에 이름
윈도우의 특징
- 시스템에 새 하드웨어를 장착하면 운영체제가 자동으로 그 하드웨어를 감지하여 알맞게 설정한다. -> plug and play
- 자체적인 네트워크 프로그램 지원, 같은 윈도우 사용자끼리 파일 공유 및 하드웨어 공유가 가능
유닉스(UNIX)
프로그램 개발 환경을 위해 설계된 운영체제
- 이식성이 좋음
- 커널의 크기가 작음
- 오픈 소스
대부분의 코드가 C언어로 작성됨.
어셈블리어가 아닌 고급 언어로 작성되어 소스 코드를 이해하기 쉽고 그렇기 때문에 다른 기종으로의 이식성도 높음
리눅스(Linux)의 등장으로 유닉스를 개인용 컴퓨터에서도 사용할 수 있게 됨
'CS > 운영체제' 카테고리의 다른 글
04. 프로세스 관리 - 3 (0) | 2023.06.27 |
---|---|
04. 프로세스 관리 - 2 (0) | 2023.06.25 |
04. 프로세스 관리 - 1 (0) | 2023.03.19 |
03. 프로그램 구조와 실행 (0) | 2023.03.12 |
02. 컴퓨터 시스템의 동작 원리 (0) | 2023.03.12 |