[운영체제 공룡책] 1-2 운영체제의 개념과 구조
반응형
스터디를 모집해서 인프런에서 주니온님이 무료로 강의를 올려주신 운영체제 공룡책 강의를 함께 듣고 있다.
주 1회 한 섹션씩 강의를 듣고 요약 정리, 그 후 제비뽑기해서 2명~4명이 돌아가며 발표 및 궁금한거 혹은 흥미로웠던 내용을 공유하는 방식으로 진행중이다.
블로그에는 주로 강의를 요약한 내용만 정리한다.
1-2 운영체제의 개념과 구조
운영체제가 뭐길래?
1.1 What Operating Systems Do
- 4개의 컴포넌트
- 하드웨어
- 오퍼레이팅 시스템
- 어플리케이션 프로그램
- 유저
1.2 Computer-System Organization
- 현대 컴퓨터의 구성
- 책에서는 모던 컴터 시스템 구성을 CPU, Disk Controller, USB Contoller, Graphics dapter 등으로 구성되어 있다 했지만 이건 이제 클래식해진거지
- 요즘 모던하다는건 신경망 컴터, 네트워크, 양자 컴터임 (폰노이만 아키텍처를 다루지 않는 새로운 컴터 시스템)
- Bootstrap : 컴퓨터 실행 시 OS 를 부팅해주는 프로그램
- Interrupts : 인터럽트 방법으로 I/O 디바이스의 발생한 것들을 CPU 에게~ ㅇㅇ! 얘네 둘이 소통하는 방식
- 폰 노이만 아키텍처가 아닌 것 : 메모리에서 명령어 패치해서 가져오고, 명령어를
IR(instruction register)
에 저장해. 그리고 실행해서 결과를 메모리에 저장햇 - 용량과 접근속도(액세스타임)에 따라서 다양한 저장 공간이 있음
- registers (제일빠름, 비쌈)
- cache
- main mamory (RAM)
- solid-state disk (SSD)
- hard disk (HDD, 마그네틱장을 이용한 ㅇㅇ!)
- optical disk
- magnetic tapes
- I/O Structure
1.3 Computer System Architecture
- 컴퓨터 시스템 컴포넌트의 정의
- CPU
- Processor
- Core
- Multicore
- Multiprocessor
- SMP(Sysmmetric multiprocessing)
- 근데여기서 Asymmetric도 있는데 잘 안쓰니까 넘어간다고함
- Multi-core design
1.4 Operating System Operations
- Multiprogramming : 동시에 여러 프로그램이 병렬로 수행되는 것
- Multitasking(= multiprocessing)
- 논리적으로 멀티프로그래밍을 확장한 것
- 시분할. 시간 아까우니까 시간을 나눠서 CPU를 사용하자= concurrency
- CPU Scheduling : CPU 효율을 제일 높게 만드는 선택 방법이 뭐냐~ 보통 RR 마니씀~
- 운영체제의 두가지 오퍼레이션 모드 : 유저모드와 커널모드
1.7 Virtualization
H/W 위에 VMM(버츄얼 머신 매니저, WSL, VMware, XEN)를 띄워서 여러 OS를 뛰움
1.10 Computing Environments
- traditional computing
- mobile computing
- client-server computing (web)
- peer-to-peer computing (더 나아가 blcok chain)
- cloud computing (aws, azure, gcp)
- Real-Time Embedded System (화상탐사, 라즈베리파이)
2.1 Operating System Services
어떤 컴퓨터 프로그램이 실행될 수 있도록 환경을 제공해주는게 OS
- User Interface
- Program execution - 보통 이거 공부하다가 한 학기 다 간다고 함 (그리고 메모리 관리)
- I/O operation
- File-system manipluation
- Communications
- Error detection
- Resource allocation
- Logging
- Protection and Securty
2.2 User and Operating-System Interface
2.3 System Calls
- System call (응용프로그램은 어떻게 OS와 통신하냐) : OS 가 프로그램들에게 제공하는 인터페이스 = OS의 API
- 제일 중요한건
Process
,Thread
란 개념- 한개만 할땐 괜찮아! 멀티 프로세싱 시 문제 발생!
- 그로 인해 발생하는 동기화(synchronizattion) 문제 → deadlock 문제 발생
- 이것들을 처리하기 위해 메모리를 어떻게 관리할까?
- 더 잘하기 위해 가상 메모리를 어떻게 관리할거냐?
- 또 멀티프로세싱 때 Cpu scheduling을 어떻게 할지 배울거임
- 프로세스를 제어하는 대표적인 API를 공부할거다 (fork, exit, wait) 그리고 그 외 몇 개의 시스템콜을 배운다함. 근데 우리는 운영체제의 개념에 집중해서 배울거라서 시스템 프로그래밍에 대해서는 잘 다루지 않을거라 하심.
- fork, shm_oepn(커뮤니케이션) 같은 거~ 배울거얀~
반응형
'엔지니어링 > 개발배움터' 카테고리의 다른 글
[운영체제 공룡책] 3. Process - 프로세스 간 통신 (IPC, Inter-Process Communication) (0) | 2022.07.08 |
---|---|
[운영체제 공룡책] 3. Process - 프로세스 이해와 생성 (0) | 2022.07.03 |
[운영체제 공룡책] Docker 이용하여 Mac OS 에 실습 환경설정 (0) | 2022.06.06 |
Java로 알아보는 IoC, DIP, DI, IoC Container (하) (0) | 2021.05.14 |
Java로 알아보는 IoC, DIP, DI, IoC Container (상) (0) | 2021.05.13 |
댓글
이 글 공유하기
다른 글
-
[운영체제 공룡책] 3. Process - 프로세스 간 통신 (IPC, Inter-Process Communication)
[운영체제 공룡책] 3. Process - 프로세스 간 통신 (IPC, Inter-Process Communication)
2022.07.08 -
[운영체제 공룡책] 3. Process - 프로세스 이해와 생성
[운영체제 공룡책] 3. Process - 프로세스 이해와 생성
2022.07.03 -
[운영체제 공룡책] Docker 이용하여 Mac OS 에 실습 환경설정
[운영체제 공룡책] Docker 이용하여 Mac OS 에 실습 환경설정
2022.06.06 -
Java로 알아보는 IoC, DIP, DI, IoC Container (하)
Java로 알아보는 IoC, DIP, DI, IoC Container (하)
2021.05.14