운영체제와 응용프로그램

jaemin·2021년 5월 4일
2

운영체제

목록 보기
1/3
post-thumbnail

운영체제와 응용프로그램

🔧운영체제

  • 운영체제는 Operating System, 줄여서 OS라고 부릅니다.

대표적인 운영체제

  • Windows OS
  • Mac OS
  • UNIX(유닉스) : 거의 찾아보기 힘듭니다.
    - UNIX 계열 OS : UNIX와 사용법이나 OS 구조가 유사합니다.
    • LINUX OS : UNIX 계열 OS 중 가장 대표적인 OS 입니다.

운영체제의 역할

1. 시스템 자원 관리자(System Resource)

  • 시스템 자원이란, 컴퓨터 하드웨어를 말합니다.
  • 컴퓨터 하드웨어는 다음과 같은 것을 말합니다.
    - CPU(중앙처리장치), Memory(DRAM, RAM)
    • I/O Devices(입출력장치)
      • 모니터, 마우스, 키보드, 네트워크(입출력 둘 다 해당)
      • 저장매체: SSD, HDD(하드디스크)

정리하면, 운영체제는 컴퓨터 하드웨어를 관리합니다. 컴퓨터 하드웨어는 응용체제가 없다면 스스로 할 수 있는 것이 없습니다.

CPU : 각 프로그램이 얼마나 CPU를 사용할지 결정할 수는 없습니다.
Memory : 각 프로그램이 어느 주소에 저장되어야 하는지, 어느 정도의 메모리 공간을 확보해줘야 하는지 결정할 수 없습니다.
저장 매체 : 어떻게, 어디에 저장할지 결정할 수 없습니다.
키보드 / 마우스: 스스로 표시할 수는 없습니다.

컴퓨터 하드웨어를 관리하기 위해서, 운영체제는 반드시 필요합니다.

2. 사용자와 컴퓨터간의 커뮤니케이션 지원

운영체제, OS는 사용자와 컴퓨터 사이의 커뮤니케이션을 중재합니다. 사용자가 입출력장치를 통해 명령을 내리면 운영체제가 컴퓨터 하드웨어를 관리합니다.

운영체제가 없다면 컴퓨터에 명령을 내릴 수 없습니다.

3. 컴퓨터 하드웨어와 프로그램을 제어

운영체제는 컴퓨터 하드웨어 뿐만 아니라 응용 프로그램도 제어합니다.

응용 프로그램은 그림에서 볼 수 있듯이, 한글, 엑셀, 카카오톡 같은 프로그램을 의미합니다. 운영체제는 이러한 프로그램 또한 제어합니다. 그렇다면 응용 프로그램은 정확하게 뭘까요?

👩‍💻응용 프로그램

프로그램은 모두 소프트웨어입니다. 그렇다면 소프트웨어란 무엇일까요?
소프트웨어는 두 가지로 나눌 수 있습니다.

  • 소프트웨어
    - 운영체제
    - 응용 프로그램(액셀, 파워포인트 등)

응용 프로그램 : (=)Application 줄여서 App
일반적으로 모바일에서는 app, 일반 컴퓨터에서는 어플리케이션이라고 부릅니다.

운영체제와 응용 프로그램간의 관계

앞서 말했듯이, 운영체제는 응용 프로그램을 관리합니다. 어떤 식으로 관리하는지 풀어 설명하면 다음과 같습니다.

  • 응용 프로그램을 실행시킨다.
  • 응용 프로그램간의 권한을 관리해준다.
    - 관리자 권한으로 실행
  • 응용 프로그램을 사용하는 사용자도 관리
    - ex) 로그인

예를 들어서 자세히 알아보겠습니다.

응용 프로그램은 누구나 만들 수 있습니다. 누군가 프로그램에 무한 반복문을 넣었거나, 잘못 작성해서 프로그램이 다운되거나, 모든 파일을 삭제하는 코드가 있을 수 있습니다.

이를 방지하기 위해서 운영체제는 응용 프로그램을 관리합니다.

운영체제, 응용 프로그램, 컴퓨터 하드웨어 관계

운영체제, 응용 프로그램, 컴퓨터 하드웨어 간의 관계를 도서관에 빗대어 설명하겠습니다.

  • 운영체제 : 도서관
  • 응용 프로그램 : 시민
  • 컴퓨터 하드웨어 : 책

운영체제의 역할

  • 시민(응용 프로그램)은 도서관(운영체제)에 원하는 책(자원)을 요청함
  • 도서관(운영체제)은 적절한 책(자원)을 찾아서, 시민(응용 프로그램)에게 빌려줌
  • 시민(응용 프로그램)이 기한이 다 되면, 도서관(운영체제)이 해당 책(자원)을 회수함

이를 정리하면 다음과 같습니다.

  • 운영체제는 응용 프로그램이 요청하는 메모리를 허가하고, 분배한다.
  • 운영체제는 응용 프로그램이 요청하는 CPU 시간을 제공한다.
  • 운영체제는 응용 프로그램이 요청하는 IO Devices 사용을 허가/제안한다.

사용자, 운영체제, 응용 프로그램, 컴퓨터 하드웨어 관계

운영체제가 제공하는 것들

1. 사용자 인터페이스 제공

  • 쉘 (Shell)
    - 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램
    • 쉘은 터미널 환경(CLI)과, GUI 환경 두 종류로 분류

2. 응용 프로그램을 위한 인터페이스 제공

  • API (Application Programming Interface)
    - 함수로 제공
    - C언어에서 open() 같은 것들

  • 보통은 라이브러리 형태로 제공
    - C library

  • 시스템 콜
    - 시스템 콜 또는 시스템 호출 인터페이스라고 함
    - 운영체제가 운영체제 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공
    - API 내부에는 시스템 콜을 호출하는 형태로 만들어지는 경우가 대부분

운영체제를 만드는 순서

  1. 운영체제를 개발한다. (kernel)
  2. 시스템 콜을 개발
  3. C API (library) 개발
  4. Shell 프로그램 개발
  5. 응용 프로그램 개발

운영체제와 시스템 콜

  • 시스템 콜 정의 예
    - POSIX API, 윈도우 API

API : 각 언어별 운영체제 기능 호출 인터페이스 함수 (각 언어별 인터페이스)
시스템 콜 : 운영체제 기능을 호출하는 함수

📋정리

운영체제란?
: 운영체제는 응용 프로그램이 요청하는 시스템 리소스를 효율적으로 분배하고, 지원하는 소프트웨어이다.

운영체제의 하는일

  1. 시스템 자원을 관리한다.
  2. 사용자와 컴퓨터간의 커뮤니케이션을 지원한다.
  3. 응용 프로그램을 관리한다.
  4. 응용 프로그램이 운영체제 기능을 요청하기 위해서, 운영체제는 시스템 콜을 제공한다.
    • 보통 시스템 콜을 직접 사용하기 보다, 해당 시스템 콜을 사용해서 만든 각 언어별 라이브러리(API)를 사용한다.

운영체제의 목표
: 사용자가 사용하는 응용 프로그램이 효율적으로, 적절하게 동작하도록 지원한다.


응용 프로그램이란?
: 응용 프로그램은 소프트웨어이고, 소프트웨어는 운영체제와 응용 프로그램 두 가지로 나눌 수 있다.

📌참고

해당 글은 패스트 캠퍼스 컴퓨터 공학 전공자 따라잡기 강의를 듣고 정리했습니다.

profile
프론트엔드 개발자가 되기 위해 공부 중입니다.

0개의 댓글