(+) 컴퓨터 구조 (폰노이만 구조)
크게 Memory <-> CPU로 볼 수 있고,
컴퓨터를 키면 운영체제는 Memory에 올라간다.
응용 프로그램 사용시 프로그램이 CPU로 넘어가게 된다.
➡️ 운영체제는 저장매체(HDD,SSD)에 설치되어 컴퓨터 HW, 응용 프로그램을 관리/제어하고 사용자와 컴퓨터 HW간의 커뮤니케이션 중재한다.
운영체제의 역할 총 정리
- 시스템 자원, 응용 프로그램 관리, 효율적 분배
SW이다.(프로그램 = SW)
(+)
application - 일반 PC에서의 프로그램
app - 모바일에서의 프로그램
운영체제 X - 1개의 응용 프로그램 간신히 실행
➡️ 응용 프로그램이 시스템 자원 제어 (1950년대)
"배치 처리 시스템" 등장 (1960년대)
여러 응용 프로그램 등록하고 등록순대로 순차적으로 프로그램 1개씩 처리 ➡️ 비효율적
"시분할 시스템"
시간을 잘개 쪼개서 여러 프로그램 동시에 실행
(ex. 시간을 쪼개서 5분 동안 A 실행하고 다음 5분 동안 B 실행하고 이런 식으로)
"멀티 태스킹"
단일 CPU에서 여러개 응용 프로그램의 병렬 실행을 가능하게 하는 시스템.
(+) 병렬 실행이란?
4-1. 멀티 프로그래밍
시간대비 CPU 활용도 높이자! (ex. 3이 로딩되는 동안 1을 돌리자)
(+) 시멘틱 구조
이러한 웹페이지 구성을 시맨틱 구조라고 한다.
최종 정리
- 운영 체제(OS)는 응용 프로그램과 컴퓨터 HW(시스템 자원)을 관리한다.
- OS는 저장 매체(HDD, SSD)에 설치된다.
- OS는 사용자와 컴퓨터 HW간의 커뮤니케이션을 중재한다.
- 응용 프로그램은 우리가 쓰는 대부분의 프로그램을 말한다.
- sw = 프로그램
- 응용 프로그램은 OS 위에서 동작한다.
- PC - application / 모바일 - app
- 응용 프로그램은
1. OS (운영체제)
- 응용프로그램 (OS 외 프로그램)
- CLI(터미널) / GUI(마우스로 움직이는 환경)
- 운영체제의 역사
- OS 없었음, 응용 프로그램 간신히 1개 돌림
➡️ 응용 프로그램이 시스템 자원 제어- 배치 처리 시스템
1개 프로그램 실행 다 끝나면 다른 것 실행
➡️ 시간 느림, 비효율적- 시분할 시스템, 멀티 태스킹(+멀티 프로그래밍), OS - C언어
- 시분할 시스템
: 시간을 쪼개서 번갈아 가며 프로그램 실행- 멀티 태스킹
: 병렬 처리
➡️ 한 번에 여러 프로그램을 실행하는 것처럼 보임- 멀티 프로그래밍
1개의 프로그램이 로딩되는 동안 다른 프로그램 실행
➡️ 효율적- OS 개발에 C언어가 적합했음
- GUI 활발 (마우스의 도입으로), 개인용 컴퓨터 보급 시작
- 다양한 응용 프로그램 활성화(killer application), 인터넷 발달, 오픈 소스 운동 활성화
- 오픈 소스 더 활성화, 가상머신, 대용량 병렬 처리(빅데이터)
- 가상머신
1개의 컴퓨터(cpu)에서 여러 OS 실행
응용 프로그램 ↔️ OS ↔️ HW의 관계를 간단하게 보자면,
이렇다고 볼 수 있다.
최종 정리
- OS가 제공하는 사용자 위한 인터페이스 : Shell
- 응용 프로그램의 일종
- API 통해서 OS에 요청한다.
- GUI / CLI(터미널) 환경
- OS가 제공하는 응용 프로그램 위한 인터페이스
1. API(Application Programming Interface)
- 함수로 제공 (ex. open())
- OS에 기능 요청하려면 API 사용해야 한다.
- library : OS에 요청하는 함수를 종류별로 묶은 것
(C library : 가장 기본적)- shell도 응용 프로그램의 일종이라 API 통해 OS에 요청한다.
- API는 간단하게요청서, 메뉴라고 볼 수 있음
- 시스템 콜
- 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
운영체제구조 - 시스템 콜, 최종정리 : 본인이 필기함