CS/운영체제

[운영체제] 운영체제란?

삶_ 2022. 6. 21. 12:10

 

운영체제(OS)란?

  • 컴퓨터 하드웨어 바로 위에 설치됨
  • 사용자 및 다른 소프트웨어/하드웨어를 연결하는 소프트웨어 계층
  • 좁은 의미의 운영체제
    • 메모리에 상주하는 운영체제의 부분 (= 커널)
  • 넓은 의미의 운영체제
    • 커널뿐 아니라 시스템을 전반적으로 관리하는데 필요한 것을 포함

 

 

운영체제 목표

  • 동시 사용자들이 각각 독자적 컴퓨터에서 수행되는 것 같은 환상을 제공함
  • 컴퓨터 시스템의 자원(cpu,메모리,I/O장치 등)을 최대한 효율적으로 관리
  • 다중작업/다중사용자/시분할

 

 

운영체제 기능

  • CPU
    • CPU가 디스크를 직접 거치지 않고, IO컨트롤러를 통해 디스크를 전달받음
    • CPU 스케줄링
    • 인터럽트, 캐싱
  • 메모리 : CPU의 작업공간
  • 디스크
      •  

 

 

운영체제의 종류

  • 유닉스
    • 큰 서버를 위해 만들어진 운영체제
    • 코드의 대부분을 C언어로 작성 (하드웨어를 효율적으로 쓸수있는 언어여서)
    • 높은 이식성이 있는 C언어
    • 안정성
    • 소스 코드 공개 / 프로그램 개발에 용이
    • 리눅스 (소스가 공개된 소프트웨어)
  • MS Windows
    • MS에서 개발한 DOS 였다가 발전한것
    • 초기의 불안정성 (여러프로그램을 돌리다보면 버그가 생겨서 재부팅이 필요)
  • 안드로이드/IOS
    • 모바일 운영체제

 

운영체제의 분류

  • 단일작업 : 한번에 하나의 작업만 처리  ex. 윈도우
  • 다중작업 : 동시에 두개 이상의 작업 처리  ex.리눅스

 

  • 일괄처리 : 작업 요청량의 일정량을 모아 한번에 처리 (요즘엔 잘 안 쓰임)
  • 시분할 : 여러 작업을 수행시 컴퓨터 처리능력을 일정한 시간단위로 분할하여 사용 (요즘에 쓰임 ex. 유닉스)
  • 실시간 : 정해진 시간 안에 반드시 종료됨이 보장되어야하는 시스템

 

 

몇가지 용어

  • 컴퓨터를 동시에 여럿이서 쓸수있다는 의미의 용어들
    • 멀티태스킹 : 컴퓨터 안에 여러 프로그램을 동시에 돌리는것 
    • 멀티프로그래밍 : 메모리에 여러프로그램이 동시에 올라가 있는 것
    • 타임쉐어링 : CPU를 쓸 때 시간을 공유해서 쪼개쓴다
    • 멀티프로세스 : 하나의 컴퓨터에 CPU가 여러개 붙어있다

 

 

 

 

사용자 프로그램이 사용하는 함수

  • 사용자 정의 함수
    • 자신의 프로그램에서 정의한 함수
  • 라이브러리 함수
    • 내가 만들지 않고 갖다쓴 함수
  • 커널 함수
    • 운영체제 프로그램의 함수
    • 커널에 들어있는 함수

 

 

 

 

동기실/비동기실 입출력

  • 동기실 입출력
    • 입출력 요청 후 입출력 작업까지 완료되야만 CPU를 사용자 프로그램에게 다시 줄수있는 것
    • 완료되면 인터럽트가 완료됬다고 알려줌
  • 비동기실 입출력
    • 입출력작업이 완료됨을 기다리지 않고 CPU제어권이 사용자 프로그램에 넘어감
    • CPU가 놀지않고 다른 프로그램에게 넘어가기 때문에 효율적인 방식임