강의06 - kyagrd/introCS2018spring GitHub Wiki
운영체제 관련
요즘 주로 쓰이는 운영체제는 크게 Unix/Linux와 그 이외의 운영체제(Windows)로 나뉜다고 보면 된다. 애플의 Mac OS는 Unix기반이며 Android는 리눅스 기반 운영체제.
응용프로그램에서 공통적으로 사용하는 기능을 제공 (특히 입출력 등을 포함한 하드웨어 자원 관리)
가상메모리 등의 개념 (3 분반은 시간이 모자라서 아마도 다음 시간에 2 분반은 오늘 가능할지도)
동시성(Concurrency)와 병렬성(Parallelism) 관련
- 멀티태스킹 : 운영체제에서 여러 개의 작업/프로세스를 동시에 진행 (즉 한 작업/프로세스를 완전히 끝내지 않고도 다른 작업도 진행)
- 실제로 동시에 처리하지 않더라도 컴퓨터가 사람이 느끼지 못할 정도로 빠르게 작업을 전환해 가며 시간을 할당해서 번갈아 가면서 진행하는 time sharing 방식으로 구현 가능 (멀티코어 프로세서가 나오기 전 싱글코어 프로세서에서도 멀티태스킹을 지원하는 OS가 존재했음)
- 관련 개념: 동시성 (한정된 자원의 배분 문제)
- 멀티태스킹의 목적은 반응속도(responsiveness)를 높이는 것. 단위시간당 처리량(throughput)이 증가한다는 보장은 없다 (오히려 한번에 한 작업씩 다 끝내고 넘어가는 batch processing보다 단위시간당 처리량은 더 줄어들 수도 있다).
- 멀티코어 : 하나의 칩에 여러 개의 CPU 코어가 들어있는 하드웨어 구조
- 관련 개념: 병렬성 (실제로 동시에 여러 개의 작업을 처리)
- 멀티코어로 병렬처리를 하면 단위시간당 처리량(throughput)이 증가
가상화 기술, 샌드박싱
가상머신(VM)과 컨테이너(container)의 개념을 설명. 컨테이너 대세인 Docker에 대해서 알아본다.