본문 바로가기

서버운영 (TA, ADMIN)/미들웨어

[운영체제] 리눅스포털 운영체제론 완강

강좌명 : 운영체제론 과정(완강)
강사명 : 고건
- 전공분야 : 운영체제, 성능평가, UNIX, Linux
- 1967 - 1974 서울공과대학(학사: 응용물리학)
- 1974 - 1976 한국과학기술연구소 (KIST) 연구원
- 1976 - 1981 미국, 버지니아 대학(박사: 전산학)
- 1981 - 1983 Bell Laboratories 연구원(미국)
- 1983 - 2011 서울대학교 교수
- 1996 - 1999 국가 정보화추진위원회 자문위원
- 1997 - 1998 한국정보과학회 부회장
- 2007 - 2011 한국공개소프트웨어활성화포럼 의장
- 2011 - 2013 전주대학교 총장
수강 기간 : 2016년 10월 5일 ~ 2016년 12월 6일

[제1강좌] 운영체제의 개요
. 성능척도
. 관점/표현의 전환
. Process vs Program
. OS가 하는일
. 프로세스 관리
. 주기억장치 관리
. 주기억장치 관리
. 보조기억장치관리
. 입출력시스템
. OS구성요소
. OS에서 사용되는 기법
. 옛날CPU의 가격
. Uni-programming
. Main CPU - Satellite CPU (channel)
. SPOOLING
. OS의 종류
. Single-tasking vs Multi-tasking
. Single-user vs Multi-user
. 일괄처리(Batch) 시스템
. Card Reader & Batch System
. 시분할(Time-sharing)시스템
. 실시간(Realtime)시스템
 
[제2강좌] Utility 프로그램
. 매크로프로세스(Macro Processor)
. Loader Absolute, Relocating
. Overlay
. Utility Program
. 사용자 Interface
. 프로그래밍 언어
. 컴파일링, 어셈블링
. 참조한 Symbol이 그 file에 없다면? print() sin()
. object module의 예
. binary 까지 세단계
. 전체과정
. 광의/협의 OS정의
. 운영체제의 기능

[제3강좌] 프로세스
. Process Control Block(PCB)
. 스케줄러(Scheduler)
. Process Scheduling Queues
. Process State
 
[제4강좌] 문맥교환(Context Switch)
. SVC 인터럽트(interrupt) (SuperVisor Call)
. 문맥교환(Context Switch)
. Process Creation
. PCB물려주기
. Parent/Child - 자원/환경 물려주기
. copy PCB 전체 -> Big Overhead
. PCB공동사용 -> Small Overhead
. Overhead - Process Creation
. Child Processes
. Child Thread
. 1-Program & N-threads
. Thread

[제5강좌] 병렬프로세스 동기화
. Interleaved execution
. Mutual Exclusion
. 프로세스동기화(synchronization)
. 세마포어(Semaphore)
. 동시에 Semaphore 액세스?
. Critical Section of n Processes
. Binary
. Integer (counting) Block-Wake up Semaphore
. busy-wait vs block-wakeup semaphore
. Asynchronous / Synchronous Concurrent Processes

[제6강좌] Monitor
. 세마포어의 문제점
. Monitor
. Critical Section of n Processes
. IPC (Inter Process Communication)
. Interprocess Communication(IPC)
. Producer-Consumer Problem
. Interprocess Communication (IPC)
. Producer-Consumer Problem
. 직접통신
. 간접통신

[제7강좌] 교착상태(Deadlock)
. Resource-Allocation Graph
. 교착상태(Deadlock)의 정의
. 교착상태가 일어나기 위한 4가지조건
. 교착상태(Deadlock) 세가지 대처방법
. 교착상태 예방(Prevention)
. 점유및 대기조건의 방지
. 비선점 조건의 방지
. 환영대기 조건의 방지
. 상호배제(Mutual Exclusion) 조건의 방지?
. 교착상태 회피(Avoidance)

[제8강좌] 교착상태 세가지대처방법
. 교착상태 탐지 및 복구(Detection & Recovery)
. Detect 와 Avoid의 차이
. 탐지(Detection) 알고리즘
. irreducible graph 예
. 복구(Recovery)
. 결론

[제9강좌] CPU스케줄링
. 스케줄링(Scheduling)의 정의
. 스케줄링 평가기준
. 선점기법(Preemptive)
. 비선점기법(Non-preemptive)
. 스케줄링의 기본개념
. FIFO(First In First Out) 스케줄링
. 우선순위(Priority) 스케줄링
. Deadliine 스케줄링
. Shortest-Job-First (SJF)
. SRT (Shorteest Remaining Time)
. HRN(Highest Response ratio Next)
. 라운드로빈(RR : Round Robin)스케줄링
. 다단계 피드백큐(Multilevel feedback queue) 스케줄링

[제10강좌] 기억장치관리
. 프로세스에게 공간을 주기
. Uni-programming
. 고정분할(Multi-programming Fiexed Partition)
. 가변분할(Multi-programming Variable Partition)
. 빈공간의 관리
. 배치전략(Placement Strategy)
. Binding
. Load/Run 할 시점에서야 주소가 확정된다?
. Fragmentation
. 빈공간통합(Coalesce)
. 압축(Compaction)
. Multi-user, Multi-programming과 Protection
. CPU의 두가지 mode
. I/O와 System Call
. SVC 인터럽트(Interrupt)

[제11강좌] Paging과 Segmentation
. 프로그램이 크다면? (Swapping, Overlay, 비연속할당기법)
. MMU (CPU에서 Memory로 가는 주소를 바꿔친다)
. Memory Management Unit
. Paging - 동일한 크기
. Segmentation - 모두 다른크기
. Logical vs Physical Address Space
. Paging
. Page Table Base Register
. Page Table Limit Register
. Page Table entry
. Paging의 장단점
. Segmentation
. Segment
. 아무공간에도 올라온다
. Segment Table Entry

[제12강좌] Paging_Segmentation Policy
. 페이지반입(fetch)정책
. 페이지배치(placement)정책
. 교체(replacement)정책
. Demand Paging
. Belady 최적알고리즘
. FIFO 알고리즘
. LRU 알고리즘
. LFU 알고리즘
. NUR 알고리즘
. Thrashing
. 다중프로그래밍 정도를 낮출것
. Locality
. Working Set
. Working-Set Model
. Fault rate에 따른 조정

[제13강좌] 보조기억장치
. 보조기억장치
. Moving-Head Disk
. FCFS 디스크 스케줄링
. SCAN 디스크 스케줄링
. C-SCAN 디스크 스케줄링
. LOOK 디스크 스케줄링

[제14강좌] 파일시스템
. Access방법(Sequential Access, Direct Access)
. FCB (File Control Block)
. File Content를 위한 공간
. File 데이터용 공간
. File Open
. Directory File
. Directory
. Directory 구조
. 단일디렉토리 구조
. 2단계 디렉토리 구조
. Tree형태 디렉토리 구조
. Acyclic 그래프 디렉토리구조
. 일반그래프 디렉토리 구조
. Free Space의 관리
. Bit map or bit vector
. Linked list, Grouping, Counting
. File System (Disk Data Structure)

[제15강좌] Protection과 Security
. 보호(proctection)와 보안(Security)
. 위협의 형태
. 파일보호방법
. Access Control
. Access Control Matrix
. Access Control list
. Capability list
. 침투 주체별 분류
. 보안유지방식
. 암호화(Cryptography)
. 비밀키시스템(Private key system)
. 공개키시스템(Public key system)
. 위협감시(Threat Monitoring)
. 감사로그(Audit log)
. 디지털서명(Digital signature)

[제16강좌] 병렬 다중분산처리
. 여러처리기 - 일반적인 장점들
. 구분 및 개요
. 병렬처리(Parallel Processing)
. 다중처리(Multiprocessing)
. 네트워크 운영체제(NOS: Network Operating System)
. 분산처리(Distributed Processing)
. 다중처리(Multiprocessing)
. 다중처리기 상호연결(interconnection)방법
. 시분할공유버스(Time Shared single bus)
. 크로스바 교환행렬(Crossbar Switching Matrix)
. Hypercube
. Multiport Memory
. 다중처리(Multiprocessing) Operating System
. Master/Slave 다중처리
. Separate Executive 다중처리
. SMP 다중처리(Symmetric Multiprocessing)
. 분산처리(Distributed Processing)
. 분선처리 연결 Topology
. 완전(Fully) Connected
. 부분(Partially) Connected
. 계층(Hierarchy) Connection
. 성형(Star) Connection
. Ring Connection
. Bus Connection
. 분산처리 사용자측면
. 분산처리 Site간 이주
. 분산처리 내부동작의 설계
. Flynn의 분류(SISD, SIMD, MISD, MIMD)

[제17강좌] 운영체제의 실제
. UNIX and LINUX
. 광의/협의 OS정의
. SHELL
. UNKIX/Linux Utility (Command)
. UNIX File
. UNIX File System
. UNIX Process
. PIPE의 개념
. User Interface (OS)
. MS-DOS
. MS-DOS 내부명령어
. MS-DOS 외부명령어
. Windows
. Windows 용도별 분류
. Windows에서 시작된 기능들
. PnP (Plug & Play)
. OLE기능(Object Linking & Embedding)
. Rendering
. Linux 커널의 모듈화

 

분명히 학부시절때 운영체제 관련 공부 열심히 했는데 시간이 지나고 나니 모든게 가물가물해진다. 서버개발에 가장 핵심적인 전공지식이 운영체제인걸로 알고 있다. 몇년만에 운영체제 관련 공부를 해보니 새삼 새로웠다. 그렇지만 이미 접해봤던 내용들이었기때문에 이게 뭐지 뭐지하면서 개념을 찾을 필요없이 물흐르듯 강의를 들을 수 있었다. 물론 강의 자체가 운영체제에 대해 개괄적인 설명일뿐 깊이있게 다루지 않았던 탓이 제일 크겠지만 말이다. 어쨌건 리눅스 해킹보안부터 운영체제까지 4개월간 1시간정도 일찍 출근하여 강의를 들었는데 뭔가를 하고 나니 개인적으로 참 뿌듯하다. 강좌목록은 참 그럴싸한데... 깊이 있는 지식을 얻으려면 책이나 고급레벨의 운영체제 강의를 수강하는 것이 더 나을 것으로 보인다.

운영체제 카테고리에는 운영체제 깊게 알아둬야할 내용에 대해 따로따로 정리 해두려고 한다^^