✅ 개념 이해 하기

✏️ 운영체제는 무엇일까?

  • 운영체제OS(Operating System)
    : 컴퓨터 하드웨어를 편리하고 효율적으로 사용하게 하기 위하여 시스템 자원(메모리, 프로세서 등)을 관리하고 여러가지 프로그램이 필요로 하는 공통적인 서비스를 제공하는 소프트웨어를 뜻합니다.
  • 주요 운영체제 : Window, UNIX계열 OS(리눅스), MacOS

✅ 관계

운영체제(OS)는 커널(Kernel)을 의미합니다.

✏️ 커널이란?

컴퓨터 운영 체제의 핵심이 되는 컴퓨터 프로그램으로, 시스템의 모든 것을 완전히 통제합니다.


일반적으로 커널에 여러가지를 추가한 상태를 OS라고 통칭합니다.

❓ 안드로이드는 OS일까?

안드로이드는 운영체제가 아닙니다.
안드로이드는 스마트폰, 태블릿 PC 같은 터치스크린 모바일 장치 용으로 디자인된 운영체제이자 수정된 리눅스 커널 버전을 비롯한 오픈 소스 소프트웨어에 기반을 둔 모바일 운영 체제입니다.

✅ 쉘(Shell)

쉘이란? 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램입니다.
쉘은 터미널 환경과 GUI환경 두 종류로 분류합니다.
*유명한 쉘 : 리눅스 bash

✅ 시스템 콜

시스템 호출 인터페이스 입니다.
운영체제가 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공하고 있습니다.

✏️ 시스템 콜은 커널모드로 실행하세요.

  • 커널 모드에서만 실행 가능한 기능이 따로 있습니다.
  • 커널 모드로 실행하려면, 반드시 시스템 콜을 사용해야합니다.
  • 시스템 콜은 운영체제에서 제공합니다.

✅ 운영체제에 맞는 API구현

API(Application Programming Interface)는 함수 또는 라이브러리입니다.
API 내부에는 필요할 시 해당 운영체제의 시스템콜을 호출하는 형태로 제작되었습니다.

✅ 사용자 모드와 커널 모드

커널에서 중요한 자원을 관리하기 때문에 사용자가 중요한 자원에 접근하지 못하도록 모드를 2가지로 나눈 것입니다.
예시: 동사무소 직원은 특별한 권한이 있기 때문에 등본 출력 명령을 실행할 수 있습니다.

✅ CPU Protection Ring

  • 사용자 모드 : 응용 프로그램이 사용
  • 커널 모드 : OS가 사용

✅ 운영 체제의 역할

시스템자원 = 컴퓨터 하드웨어

  • CPU, Memory
  • I/O Device : 모니터, 마우스, 키보드, 네트워크
  • 저장매체 : SSD, HDD

✏️ 역할

  1. CPU : 프로그램이 얼마나 CPU를 사용할지를 결정할 수 없습니다.
  2. Memory : 프로그램이 어느 주소에 저장되어야 할 지, 공간은 얼마나 확보해야할 지는 결정할 수 없습니다.
  3. 저장매체 : 어디에 어떻게 저장할지 결정할 수 없습니다.
  4. 키보드/마우스 : 스스로 표시할 수 없습니다.

✏️ 사용자와 컴퓨터간의 커뮤니케이션

유저와 컴퓨터의 커뮤니케이션을 하는 역할을 합니다.

✅ 응용 프로그램이란?

  • 프로그램 = 소프트웨어
  • 소프트웨어 = 운영체제, 응용 프로그램
  • 응용 프로그램 = Application = App

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

운영체제는 응용 프로그램을 관리합니다.
1. 응용 프로그램을 실행시킨다.
2. 응용 프로그램간의 권한을 관리해준다. (관리자 권한)
3. 응용 프로그램을 사용하는 사용자도 관리 (로그인)

💡 응용프로그램은 누구나 만들 수 있습니다.
만약, 응용 프로그램이 CPU를 자기만 쓰겠다고 하면 운영체제에서 막습니다.

✅ 프로세스란 무엇일까?

실행 중인 프로그램을 프로세스라고 합니다.(바이너리는 실행 파일)
응용 프로그램은 프로세스가 아닙니다. (응용 프로그램은 여러 프로세스로 구성 가능)

1️⃣ 배치 처리 시스템

여러 프로그램을 순차적으로 실행시켜야합니다.
어떤 프로그램은 실행시간이 오래걸려, 다른 프로그램이 실행되는데 시간을 많이 기다려야 합니다.

📝 총 정리

  1. 운영체제는 시스템 콜을 기본적으로 제공합니다.
  2. 프로그래밍 언어별 운영체제를 지원하기 위해, 운영체제 별로 API 따로 제공합니다.
  3. 응용 프로그램 개발시 운영체제 기능이 필요한 경우에는 API를 사용하여 제작합니다.
  4. 응용 프로그램 실행시 해당 API를 호출하면 시스템 콜 호출 후 커널모드로 변경되며 OS 내부에서 명령이 실행되고 응용 프로그램에 결과를 리턴합니다.
  5. 운영체제는 시스템 자원, 응용 프로그램 관리, 효율적 분배를 담당합니다.
  6. 응용 프로그램이란 소프트웨어 입니다.
profile
#UXUI #코린이

1개의 댓글

comment-user-thumbnail
2023년 1월 12일

와 정리가 너무 굿굿!! 👍👍

답글 달기