0729 TIL

potato·2021년 7월 29일
0

🪴 운영체제(OS)란?

  • 컴퓨터 HW
    1. 입출력 장치
    2. CPU(중앙처리장치), Memory(DRAM, RAM)
    3. 저장매체 : HDD, SSD

(+) 컴퓨터 구조 (폰노이만 구조)

크게 Memory <-> CPU로 볼 수 있고,
컴퓨터를 키면 운영체제는 Memory에 올라간다.
응용 프로그램 사용시 프로그램이 CPU로 넘어가게 된다.

운영체제의 역할

  1. 시스템 자원 관리자
    ➡️ 컴퓨터 HW (컴퓨터 HW가 어디에, 뭘 어떻게 해야 하는지 결정해줌)
  2. 사용자와 컴퓨터 HW간의 커뮤니케이션 중재
  3. 컴퓨터 HW와 프로그램을 제어/관리
    (응용 프로그램은 os위에서 실행된다.)

➡️ 운영체제는 저장매체(HDD,SSD)에 설치되어 컴퓨터 HW, 응용 프로그램을 관리/제어하고 사용자와 컴퓨터 HW간의 커뮤니케이션 중재한다.

운영체제의 역할 총 정리

  • 시스템 자원, 응용 프로그램 관리, 효율적 분배

응용 프로그램이란?

SW이다.(프로그램 = SW)

  • OS
  • 응용 프로그램 (OS 외 프로그램을 말함)

(+)
application - 일반 PC에서의 프로그램
app - 모바일에서의 프로그램

운영체제 변천사

  1. 운영체제 X - 1개의 응용 프로그램 간신히 실행
    ➡️ 응용 프로그램이 시스템 자원 제어 (1950년대)

  2. "배치 처리 시스템" 등장 (1960년대)
    여러 응용 프로그램 등록하고 등록순대로 순차적으로 프로그램 1개씩 처리 ➡️ 비효율적

  3. "시분할 시스템"

    시간을 잘개 쪼개서 여러 프로그램 동시에 실행
    (ex. 시간을 쪼개서 5분 동안 A 실행하고 다음 5분 동안 B 실행하고 이런 식으로)

  4. "멀티 태스킹"
    단일 CPU에서 여러개 응용 프로그램의 병렬 실행을 가능하게 하는 시스템.
    (+) 병렬 실행이란?

    4-1. 멀티 프로그래밍
    시간대비 CPU 활용도 높이자! (ex. 3이 로딩되는 동안 1을 돌리자)

    (+) 시멘틱 구조
    이러한 웹페이지 구성을 시맨틱 구조라고 한다.


최종 정리

  1. 운영 체제(OS)는 응용 프로그램과 컴퓨터 HW(시스템 자원)을 관리한다.
    • OS는 저장 매체(HDD, SSD)에 설치된다.
    • OS는 사용자와 컴퓨터 HW간의 커뮤니케이션을 중재한다.
  2. 응용 프로그램은 우리가 쓰는 대부분의 프로그램을 말한다.
    • sw = 프로그램
    • 응용 프로그램은 OS 위에서 동작한다.
    • PC - application / 모바일 - app
    • 응용 프로그램은
      1. OS (운영체제)
      1. 응용프로그램 (OS 외 프로그램)
  3. CLI(터미널) / GUI(마우스로 움직이는 환경)
  4. 운영체제의 역사
    1. OS 없었음, 응용 프로그램 간신히 1개 돌림
      ➡️ 응용 프로그램이 시스템 자원 제어
    2. 배치 처리 시스템
      1개 프로그램 실행 다 끝나면 다른 것 실행
      ➡️ 시간 느림, 비효율적
    3. 시분할 시스템, 멀티 태스킹(+멀티 프로그래밍), OS - C언어
      • 시분할 시스템
        : 시간을 쪼개서 번갈아 가며 프로그램 실행
      • 멀티 태스킹
        : 병렬 처리
        ➡️ 한 번에 여러 프로그램을 실행하는 것처럼 보임
      • 멀티 프로그래밍
        1개의 프로그램이 로딩되는 동안 다른 프로그램 실행
        ➡️ 효율적
      • OS 개발에 C언어가 적합했음
    4. GUI 활발 (마우스의 도입으로), 개인용 컴퓨터 보급 시작
    5. 다양한 응용 프로그램 활성화(killer application), 인터넷 발달, 오픈 소스 운동 활성화
    6. 오픈 소스 더 활성화, 가상머신, 대용량 병렬 처리(빅데이터)
      • 가상머신
        1개의 컴퓨터(cpu)에서 여러 OS 실행



🪴 운영체제 구조 - 시스템 콜

🌱 응용 프로그램 ↔️ OS ↔️ 컴퓨터 HW 관계

응용 프로그램 ↔️ OS ↔️ HW의 관계를 간단하게 보자면,
이렇다고 볼 수 있다.

  • 응용 프로그램 ↔️ OS
    응용 프로그램이 요청하는 밑의 내용들을 허가/제어한다.
    1. 메모리 허가/분배
    2. CPU 시간 제공
    3. 입출력 장치(IO Device)의 사용

최종 정리

  • OS가 제공하는 사용자 위한 인터페이스 : Shell
    • 응용 프로그램의 일종
    • API 통해서 OS에 요청한다.
    • GUI / CLI(터미널) 환경
  • OS가 제공하는 응용 프로그램 위한 인터페이스
    1. API(Application Programming Interface)
    • 함수로 제공 (ex. open())
    • OS에 기능 요청하려면 API 사용해야 한다.
    • library : OS에 요청하는 함수를 종류별로 묶은 것
      (C library : 가장 기본적)
    • shell도 응용 프로그램의 일종이라 API 통해 OS에 요청한다.
    • API는 간단하게요청서, 메뉴라고 볼 수 있음
    1. 시스템 콜
    • OS가 OS의 각 기능 사용할 수 있도록 제공해준 명령/함수
    • API = 시스템콜 + 알파
      (API 내부에는 시스템 콜 호출하는 형태인 게 대부분)
    • 결국, 시스템 콜을 통해 OS에 요청하는 것


  • 프로그래머
    프로그래밍 언어 배움 ➡️ API/library 배움
    API/library 가지고 Application/shell 만든.
  • 일반 사용자
    각 OS 사용법을 배움 ➡️ shell 배움
    위와 같은 프로그램을 사용해 User가 컴퓨터를 사용한다!



📷 사진 출처
폰노이만 구조 : 위키백과
시분할 시스템, 멀티 프로그래밍 : 듣는 강의
병렬 실행 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=mals93&logNo=220730379008
시멘틱 구조 : https://snusang.tistory.com/4
운영체제구조 - 시스템 콜, 최종정리 : 본인이 필기함

0개의 댓글