Skip to content

Latest commit

 

History

History
240 lines (162 loc) · 10.3 KB

운영체제.md

File metadata and controls

240 lines (162 loc) · 10.3 KB

// 22.09.04 Noel

❤️ 운영체제란?


운영체제(Operating System)

🤔 운영체제가 뭔가요?

  • 우리가 흔히 아는 맥 OS(Mac OS), 윈도우(Window), 리눅스(Linux), 유닉스(Unix) 등

  • Operating System

    • 컴퓨터(하드웨어) 시스템을 운영하는 소프트웨어
    💡 알아두면 좋은 상식..!
    
    🤔 그럼 컴퓨터는 뭘까? 
      - 컴퓨터는 `정보`를 처리하는 기기
      
    🤔 그럼 정보가 뭘까? 
      - 정보량 = 깜놀도 /I(x) = -log2 P(x)
      - `확률이 적은 사건은 큰 정보량`을 갖고, `발생 확률이 큰 사건은 작은 정보량`을 가짐
      - 정보의 최소단위 : 1 bit
      = 즉 정보는 불확실한 상황을 측정해서 수치적으로 표현한 것
    
    🤔 그럼 프로그램은 뭘까?
    	- 컴퓨터 하드웨어에 어떤 테스크를 실행시키는 명령어들의 집합
    


👉 운영체제도 프로그램(소프트웨어)인가요? : YES

  • 컴퓨터 시스템(하드웨어)의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임

    • 운영체제는 컴퓨터 사용자컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종으로, 다른 응용프로그램이 유용한 작업을 할 수 있도록 하는 환경 제공
    • 즉, 응용프로그램(Application Program)System Service(하드웨어)를 직접 건드리기 는 어려우니 OS가 중간에 위치해 사용자의 요청을 처리해줌
    프로그램(소프트웨어) 
    => 크게 운영체제 / 응용프로그램(= Application, App)으로 구분
    => 운영체제는 응용프로그램을 관리해 사용자가 사용하기 편하게 도와줌
    



🤔 운영체제의 기능

운영체제의 일은 컴퓨터 하드웨어를 관리 하는 것!

프로그래머들이 하드웨어를 모르더라도 쉽게 사용할 수 있도록 지원해줌

번호 내용
1 프로세서, 기억장치, 입출력장치, 파일 및 정보 등의 지원을 관리
2 자원을 효율적으로 관리하기 위해 자원의 스케줄링 기능을 제공
3 사용자와 시스템간의 편리한 인터페이스(UI)를 제공
4 시스템의 각종 하드웨어와 네트워크를 관리, 제어
5 데이터를 관리하고, 데이터 및 자원의 공유 기능을 제공
6 시스템의 오류를 검사하고 복구
7 자원 보호 기능을 제공
8 입출력에 대한 보조 기능을 제공
9 가상 계산기 능력을 제공

*가상 계산기란?
한대의 컴퓨터를 여러 대의 컴퓨터처럼 보이게하는 가상 컴퓨터 운영체체에 의해 만들어지며
사용자 관점에서는 실제 컴퓨터처럼 보일 수도 있고 아주 다르게 보일 수도 있음



🤔 운영체제의 목적

운영체제의 목적은 컴퓨터를 잘 쓰자..!

  • 운영체제 목적은 처리능력 향상, 사용 가능동 향상, 신뢰도 향상, 반환 시간 단축 이 있음
  • 아래 4가지 항목은 운영체체 성능을 평가하는 기준이 됨
구분 내용
처리능력
(Throughput)
일정 시간 내에 시스템이 처리하는 일의 양
반환시간
(Turn Around Time)
시스템에 작업을 의뢰한 시간부터 처리가 완료될 떄까지 걸린 시간
사용가능도
(Availability)
시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
신뢰도
(Reliabilty)
시스템이 주어진 문제를 정확하게 해결하는 정도



🤔 운영체제의 구성

운영체제란 제어프로그램(Control Program)처리 프로그램(Process Program)으로 구성

  • 제어 프로그램 : 컴퓨터 안의 정보들과 자원을 제어, 상태를 감시하고 실행하는 과정을 지시하고 관리
  • 처리 프로그램 : 실제로 데이터 처리를 실행하고 결과를 보여줌

① 제어프로그램 (Control Program)

  • 각종 처리 프로그램의 실행과 기억장소 및 데이터 제오 또는 연초처리작업의 스케줄링을 감시하는 기능을 수행
  • 데이터 관리 기능 / 작업 관리 기능 / 테스트 관리 기능 을 가짐
구분 내용
감시 프로그램 - 시스템 전체의 동작 상태를 감독하고 지원 (제어프로그램의 중추적 역할)
- 수퍼바이저(Supervisor) : 시스템의 모든 동작 상태를 관리, 감독하는 제어프로그램
작업 관리 프로그램 - 어떤 작업을 처리하고 다른 작업으로 자동적 이행을 위한 준비와 처리를 수행
데이터 관리 프로그램 - 주기억 장치와 외부 보조 기억 장치 사이의 데이터 전송, 입출력 데이터와 프로그램의 논리적 연결, 파일 조적 및 처리를 담당

② 처리 프로그램 (Process Program)

  • 제어 프로그램 감시 하에 컴퓨터의 특정한 문제를 해결하기 위해 필요한 여러가지 기능을 처리할 수 있도록 해주는 프로그램
  • 회사측에서 제공하는 프로그램과 사용자가 작성한 문제 해결 프로그램이 있음
구분 내용
언어 번역 프로그램 - 원시 프로그램을 컴퓨터가 알 수 있는 기계어로 번역시키는 프로그램
-종류 : 컴파일러, 어셈블로, 인터프리터 등
서비스 프로그램 - 시스템에서 사용빈도가 높은 프로그램을 미리 개발하여 놓은 프로그램
-종류 : 연계 편집 프로그램, 로더, 디버깅 프로그램, 정렬/병합 프로그램, 라이브러리 등
문제 처리 프로그램 - 컴퓨터 사용자가 필요한 업무에 맞게 개발한 프로그램
-종류 : 급여관리, 인사관리, 회계관리 등



🤔 운영체제의 역할


① 프로세스 관리

  • 운영체제에서 작동하는 응용 프로그램을 관리하는 기능
  • 어떤 의미에서는 프로세서(CPU)를 관리하는 것이라고 볼 수 있음
  • 현재 CPU를 점유해야할 프로세스를 결정하고, 실제로 CPU를 프로세스에 할당하며, 이 프로세스 간 공유 자원 접근과 통신을 관리
👉하는 일
- 프로세스, 스레드
- 스케줄링
- 동기화
- ICP 통신

② 저장장치 관리

  • 주기억장치와 보조기억장치(하드디스크/NAND등)을 관리하는 기능
  • 주기억장치(Main Memory)
    • 프로세스에 할당하는 메모리 영역의 할당과 해제
    • 각 메모리 영영 간의 침범 방지
    • 메인 메모리의 효율적 활용을 위한 가상 메모리 기능
  • 보조기억창지(HDD, NAND, Flash Memory 등)
    • 파일 형식의 데이터 저장
    • 이런 파일 데이터 관리를 위한 파일 시스템을 OS에서 관리
    • FAT, NTFS, EXT2, JFS, XFS 등 많은 파일 스스템들이 개발되어 사용중
👉 하는 일 
- 메모리 관리
- 가상 메모리
- 파일 시스템

③ 네트워킹

  • 네트워킹은 컴퓨터 활용의 핵심
  • TCP/IP 기반의 인터넷에 연결하거나, 응용프로그램이 네트워크를 사용하려면 운영체제에서 네트워크 프로토콜을 지원해야한다.
  • => 이처럼 운영체제는 사용자와 컴퓨터 하드웨어 사이에 위치해서, 하드웨어 운영 및 관리하고 명령어를 제어하여 응용 프로그램 및 하드웨어를 소프트웨어적으로 제어 및 관리 해야한다.
👉 하는 일
- TCP/IP
- 기타 프로토콜

④ 사용자 관리

  • 운영체제는 한 컴퓨터를 여러사람이 사용하는 환경도 지원해야함
  • 따라서, 운영체제는 각 계정을 관리할 수 있는 기능이 필요
  • 사용자 별로 프라이버시와 보안을 위해개인 파일에 대해서는 다른 사용자가 접근 할 수 없도록 해야함
  • 이 밖에도 파일이나 접근권한을 지정할 수 있도록 지원하는 것이 사용자 관리 기능
👉 하는 일
- 계정 관리
- 접근권한 관리

⑤ 디바이스 드라이버

  • 운영체제는 시스템의 자원, 하드웨어를 관리
  • 시스템에는 여러 하드웨어가 붙어있음
    • -> 이들을 운영체제에서 인식하고 관리해 응용 프로그램이 하드웨어를 사용할 수 있게 해야함
    • 따라서, 운영체제 안에서 하드웨어를 추상화 해주는 계층이 필요
    • => 이 계층이 바로 디바이스 드라이버!
  • 하드웨어 종류가 많은 만큼, 운영체제 내부의 디바이스 드라이버도 많이 존재
    • 여러 디바이스 드라이버들을 관리하는 기능 또한 운영체제가 맡음
👉 하는 일
- 순차접근 장치
- 임의접근 장치
- 네트워크 장치



출처

https://github.com/gyoogle/tech-interview-for-developer/blob/master/Computer%20Science/Operating%20System/Operation%20System.md

https://youtu.be/zGBm37kze9I?list=PLHqxB9kMLLaOs2BM2KbuvttBYCgDoFm-5