CS
운영체제 공룡책 강의 정리 - 섹션 1. Chapter 1-2. Introduction & O/S Structures
사과만쥬
2024. 6. 28. 17:41
더 공부하는대로 조금씩 더 수정 예정입니다.
섹션 1. Chapter 1-2. Introduction & O/S Structures
운영체제
- 컴퓨터에서 항상 실행 중인 프로그램
- 시스템 서비스를 애플리케이션 프로그램에게 제공
- 프로세스, 리소스, 유저 인터페이스 등을 관리함
- 컴퓨터 시스템을 운영하는 소프트웨어, 하드웨어 디바이스들을 제어할 수 있는 운영체제가 있고 인터페이스들을 관리해줌.
부트스트랩 프로그램
- 파워온 되자마자 동작하는 프로그램(ROM에 저장)
- 이 메모리에다가 운영체제를 로딩하는 일을 담당함
interrupt
- cpu 가 있고 메모리가 있고 인스트럭션을 실행하고 패치하고 실행하고 패치하는 것을 쭉 하는데 io 디바이스들이 쭉 있음
- A라는 문자를 눌렀다는 것을 CPU한테 알려줘야 함
- 이걸 알려주는 방식이 interrupt임
- 하드웨어는 언제든지 interrupt를 유발할 수 있음. cpu에 신호를 보냄으로 시스템 버스를 통해 전송함.
폰 노이만 아키텍처
- fetch - execute cycle
Multiprogramming
- 프로그램의 정의: a set of instruction
- 이 프로그램을 이 메모리에 한개만 이렇게 로딩하는 방식(예전 방식), os는 그대로
- 지금은 여러 프로그램을 동시에 올려놓고 실행하는 방식 이용 ⇒ 이게 멀티프로그래밍
- 한번에 하나의 프로그램 이상 돌아감
- 여러개의 프로세스가 동시에 올라가 잇으면 좋은 점? cpu 효율을 높일 수 있다.
Multitasking(Multiprocessing)
- 하나의 CPU는 꽤 자주 작업을 바꿀 수 있음
- 많은 양의 CPU가 놀기 때문에.
- 이런 것들을 concurrency라고 부른다. (3장)
- 이걸 하기 위해선
CPU 스케쥴링
이 필요- cpu 효율을 제일 좋게 만드는 선택 방법이 무엇이냐
- 어떤 프로세스를 다음에 실행시킬지 선택하는 방법이 무엇이냐(5장에서 다룸)
Operation Mode
- 유저(애플리케이션의 어떤 동작) 모드
- 시스템에 해가 되는 일(바이러스 만들기)을 할 때 이것을 막아줘야 함
- 쭉 실행하다가 시스템 콜(OS에게 어떤 서비스를 요청하는 것)을 한다.
- 이때 커널모드로 바뀌어서 커널모드에서 시스템 콜 처리 후 유저모드로 되돌아감.
- 커널(운영체제의 가장 중요한 핵심 부분) 모드
- 커널모드에서만 하드웨어 제어를 할 수 있음. 그래서 시스템에 해가 되는 일을 하지 못함.
현대적 컴퓨터 시스템
Virtualiztion(가상화)
- 싱글 컴퓨터가 있을 때 여러개의 프로세스를 돌릴 수 있음
- 프로세스 정의: 실행 중인 프로그램
- 하나의 하드웨어 자원에 운영체제를 여러 개 끼울 수 있지 않을까? 그래서 VMM이 등장
- ex) VMware, XEN, WSL 등이 있음
- 원래는 하드웨어 + os인데 지금은 하드웨어 + VMM + os 여러개 이렇게 가능하게 됨.