KOCW_Introduction
✅ 운영체제
하드웨어를 편하게 사용할 수 있게 해주는 소프트웨어
하드웨어를 다루는 복잡한 부분은 운영체제가 담당해준다.
프로그램 입장에서는 혼자서 하드웨어를 쓰고 있다고 생각
- 운영체제는 하드웨어와 다른 소프트웨어 또는 사용자를 연결해준다.
- 컴퓨터가 부팅되면, 메모리에 올라간다.
- 메모리에 상주하는 운영체제의 핵심 부분은 kernel이라고 한다.
💡 커널
운영체제의 핵심 부분으로,
메모리에 상주하는 부분
✅ 운영체제의 목적
- 자원을 효율적으로 관리
- 자원: CPU, 메모리, I/O장치, 소프트웨어 프로그램 등
- 효율성: CPU는 한개인데 여러 프로그램에게 번갈아 할당, 프로그램입장에서는 내가 CPU를 독식하고 있다고 생각
- 형평성: 특정/시용자 프로그램에 불이익 발생 방지
- 자원을 효율적으로 관리
- 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 제공
- 하드웨어를 직접 다루는 복잡한 과정을 OS가 대신 해줌
- 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 제공
- 악성 프로그램에 대해 사용자와 운영체제 자신을 보호
✅ 운영체제의 기능
- 컴퓨터가 부팅되면, 운영체제는 메모리에 올라가 상주, 커널모드
- CPU가 파일을 읽어올 것이 필요하면, I/O입력장치의 CPU에게 요청
- CPU 스케쥴링: 운영체제는 어떤 프로그램에게 CPU를 줄까?
- 한정된 시간동안만 주기
- 일정 시간이 지나면 다시 빼앗아오기
- 메모리 관리: 한정된 메모리를 어떻게 쪼개서 쓰지? OS가 관리
- 디스크 스케쥴링: 디스크에 들어온 요청을 OS는 어떤 순서로 처리할까?
- 인터럽트, 캐싱: 빠른 CPU와 느린 I/O장치 간 속도차를 어떻게 극복하지?
- 캐싱: 메모리와 디스크 사이에 속도 차이가 나니까, 디스크에서 자주 요청되는건 메모리에 캐시로 저장
- 인터럽트:
- CPU는 디스크에
프로그램 A
에 필요한 파일 요청 - CPU는 빠르기 때문에 디스크에서 파일 읽어오는 동안
프로그램 B
실행 - 파일 읽어오는 게 끝나면 디스크는 CPU에게 인터럽트
- CPU는 인터럽트가 들어오면 운영체제에게 간다.
- 운영체제는 계속 인터럽트 들어온게 없는지 확인, CPU에게 다음 할 일 주기
- 결론: CPU는 쉬지 말고 일하고, 운영체제가 일 순서 관리
- CPU는 디스크에
✅ 운영체제의 분류
☑️ 동시작업 가능 여부
- ✔️ single tasking
- 한 번에 단 하나의 작업만 가능
- 한 번에 단 하나의 작업만 가능
- ✔️ multitasking
- 동시에 두 개 이상 작업 가능
- scheduling의 필요성
☑️ 사용자의 수
- ✔️ single user
- MS Windows
- ✔️ multi user
- 한 대의 컴퓨터에 여러명이 터미널로 접속
- UNIX, NT server
☑️ 처리 방식
- ✔️ batch processing 일괄 처리
- 작업 요청의 일정량을 모아서 한꺼번에 처리
- 작업 완전 종료될 때까지 기다려야 함
- 키보드에 입력하면 바로 나오는게 아니라❌ 어느정도 쌓이면 출력
- ✔️ time sharing 시분할
- 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정 시간 단위로 분할해서 사용
- 일괄처리에 비해 빨리 응답
- 자원을 프로세스에게 나눠줌
- 우리가 사용하는 OS
- UNIX
- interactive한 방식
- ✔️ realtime OS
- 정해진 시간 deadline안에 프로세스를 종료해야 함
- deadline을 어기면 큰 문제가 생김
- 원자로 제어 / 공장 제어 / 미사일 제어
✅ 프로세스의 상태
프로세스: 실행중인 프로그램
큐: 큐를 만들어서 프로그램들이 실행되기를 기다리기
1
2
3
4
5
- CPU에서 실행되다가 디스크에서 파일 읽어올게 필요하면
- CPU에서 쫒겨남
- 디스크 큐로 가서 기다림
- 입출력 작업 끝나면 인터럽트
- 다시 CPU큐에서 기다림
🆚 Multi
- Multitasking: 여러개의 프로그램을 동시에 돌린다
- Multiprogramming: 메모리 측면 강조, 메모리에 여러 프로그램이 동시에 올라가 있다
Time Sharing: CPU가 짧은 시간 간격으로 여러 프로그램을 처리한다. CPU의 시간을 분할해서 나누어 쓴다.
- Multiprocessor: 하나의 컴퓨터에 여러개의 CPU가 붙어있다.
✅ 운영체제의 종류
- ✔️ UNIX
- 서버를 위한 운영체제
- 최소한의 커널 구조, 가벼움
- ✔️ DOS
- Disk Operating System
- 단일 사용자 위해서 만들어짐
- MS 전 버전
- ✔️ MS Windows
This post is licensed under CC BY 4.0 by the author.