SlideShare a Scribd company logo
1 of 14
Download to read offline
Operating System
김태우
Skidmark
tu_k@naver.com
시작은 ‘계획’부터
하루 1장 (One Lesson) 끝내기
주 5일 (월~금)
총 12주 (~9월말)
1장. ‘가벼운’ 책 소개
1. OS 개발 과정에서 얻을 수 있는 세 가지
- 하드웨어와 소프트웨어를 모두 다뤄 볼 수 있다.
- 문제 해결 능력을 기를 수 있다.
- 큰 성취감을 느낄 수 있다.
2. OS를 개발하는 데 필요한 지식
- 하드웨어 지식
- 어셈블리어, C언어
- OS 이론, 각종 도구 사용법 (컴파일러, 링커, 도구)
2장. 개발 환경 구축
1. Cygwin (GCC, 크로스 컴파일러)
2. NASM (어셈블러)
3. Eclipse
4. QEMU (오픈 소스 프로세서 에뮬레이터)
- 개발 관련 도구들의 버전 업 또는 변경으로 인한 직접 개발 환경 구축 실패
>> 책의 저자가 제공하는 가상OS를 통하여 해결
3장. 64비트 프로세서에 대하여
1. x86-64 프로세서의 운영모드
- 리얼 모드 : 프로세서의 초기 상태
16비트 모드
2^20의 주소공간 지원 (1GB)
- 보호 모드 : 32비트 모드 (32비트 윈도우나 리눅스가 동작하는 기본모드)
세그먼트, 페이징, 멀티태스킹 기능 제공
2^32의 주소공간 지원 (4GB)
- IA-32e 모드 : 두 가지 서브 모드가 존재 (32비트 호환 모드, 64비트 모드)
보호 모드보다 더 많은 레지스터와 기능들을 제공
2^64의 주소공간 지원 (16EB)
3장. 64비트 프로세서에 대하여
IA-32e 모드
보호 모드
리얼 모드
특정 레지스터의 필드를 조작하여 모드를 변경
전원
CR0-PE = 1
CR0-PE = 0
Reset
CR0-PG = 1
CR4-PAE = 1
MSR-LME = 1
MSR-LME = 0
Reset
3장. 64비트 프로세서에 대하여
2. 레지스터 (Register)
- 프로세서 내부에 있는 작은 공간
- 연산, 제어, 상태 표시, 디버깅 등의 목적으로 사용
1) 범용 레지스터
- 계산, 메모리 주소지정, 임시저장공간 등의 목적으로 사용
- 수가 많으면 수행 속도가 빨라짐
- 접두사, 접미사를 이용하여 다양한 크기의 레지스터에 접근 가능
3장. 64비트 프로세서에 대하여
2. 레지스터 (Register)
- 프로세서 내부에 있는 작은 공간
- 연산, 제어, 상태 표시, 디버깅 등의 목적으로 사용
2) 세그먼트 레지스터
- 16비트 레지스터
- 주소영역을 다양한 크기로 구분하는 역할
>> 주소영역을 목적에 따라 구분하는 것
3장. 64비트 프로세서에 대하여
2. 레지스터 (Register)
- 프로세서 내부에 있는 작은 공간
- 연산, 제어, 상태 표시, 디버깅 등의 목적으로 사용
3) 컨트롤 레지스터
- 운영 모드를 변경하고, 현재 운영 중인 모드의 특정 기능을 제어
- 레지스터의 각 필드는 저마다 특정 기능을 활성화 또는 비활성화 함
ex) CR0 레지스터의 비트 0의 값을 변경  리얼모드와 보호모드를 전환
3장. 64비트 프로세서에 대하여
3. 메모리 관리 기법
- 세그멘테이션 : 전체 영역을 원하는 크기로 나누어 관리 (케이크)
- 페이징 : 일정한 단위로 잘라진 조각을 모아 원하는 크기로 관리 (식빵)
1) 리얼 모드에서는
- 최대 2^20의 주소공간을 사용
- 세그멘테이션만을 지원 (세그먼트 크기는 64K로 고정)
- 바로 물리 주소 공간을 접근
3장. 64비트 프로세서에 대하여
3. 메모리 관리 기법
- 세그멘테이션 : 전체 영역을 원하는 크기로 나누어 관리 (케이크)
- 페이징 : 일정한 단위로 잘라진 조각을 모아 원하는 크기로 관리 (식빵)
2) 보호 모드에서는
- 최대 2^32의 주소공간을 사용
- 세그멘테이션과 페이징 모두 지원
- 세그먼트 디스크립터를 이용하여 선형 주소 영역을 관리
- 세그멘테이션으로 생성된 선형주소를 페이징을 통해 물리주소로 변경
3장. 64비트 프로세서에 대하여
10 bit 10 bit 12 bit
CR3
Page Directory
Page Table
Physical Memory
Logical address
3장. 64비트 프로세서에 대하여
3. 메모리 관리 기법
- 세그멘테이션 : 전체 영역을 원하는 크기로 나누어 관리 (케이크)
- 페이징 : 일정한 단위로 잘라진 조각을 모아 원하는 크기로 관리 (식빵)
3) IA-32e 모드에서는
- 최대 2^40의 주소공간을 사용
- 디스크립터와 관계없이 64비트 전체 주소 공간으로 설정
- 페이징 단계가 총 5단계
다음 주 진행사항
부팅과 부트로더

More Related Content

What's hot

Let's Play with Data Safely
Let's Play with Data SafelyLet's Play with Data Safely
Let's Play with Data SafelyDataya Nolja
 
Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)
Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)
Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)InBum Kim
 
Hackers 퍼블리시팀 Git
Hackers 퍼블리시팀 GitHackers 퍼블리시팀 Git
Hackers 퍼블리시팀 GitWasabi-Jin
 
Compute shader DX11
Compute shader DX11Compute shader DX11
Compute shader DX11민웅 이
 
구글분산
구글분산구글분산
구글분산imscott
 
운영체제의 개념과 활용
운영체제의 개념과 활용운영체제의 개념과 활용
운영체제의 개념과 활용YoungSik Jeong
 
카산드라를 설치해서 테스트 해보자 with virtualbox
카산드라를 설치해서 테스트 해보자 with virtualbox카산드라를 설치해서 테스트 해보자 with virtualbox
카산드라를 설치해서 테스트 해보자 with virtualbox떠리 이
 
Compute shader
Compute shaderCompute shader
Compute shaderQooJuice
 
Cloudoc fujitsu desktop_svr_appliance_kor_20171013
Cloudoc fujitsu desktop_svr_appliance_kor_20171013Cloudoc fujitsu desktop_svr_appliance_kor_20171013
Cloudoc fujitsu desktop_svr_appliance_kor_20171013sang yoo
 
스레드
스레드스레드
스레드xxbdxx
 
프로세스
프로세스프로세스
프로세스xxbdxx
 
실무로 배우는 시스템 성능 최적화 8부 - 1,2,3장
실무로 배우는 시스템 성능 최적화 8부 - 1,2,3장실무로 배우는 시스템 성능 최적화 8부 - 1,2,3장
실무로 배우는 시스템 성능 최적화 8부 - 1,2,3장Sunggon Song
 

What's hot (16)

Let's Play with Data Safely
Let's Play with Data SafelyLet's Play with Data Safely
Let's Play with Data Safely
 
Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)
Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)
Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)
 
Gfs Kyu
Gfs KyuGfs Kyu
Gfs Kyu
 
Hackers 퍼블리시팀 Git
Hackers 퍼블리시팀 GitHackers 퍼블리시팀 Git
Hackers 퍼블리시팀 Git
 
Compute shader DX11
Compute shader DX11Compute shader DX11
Compute shader DX11
 
구글분산
구글분산구글분산
구글분산
 
운영체제의 개념과 활용
운영체제의 개념과 활용운영체제의 개념과 활용
운영체제의 개념과 활용
 
Macro for Game
Macro for GameMacro for Game
Macro for Game
 
카산드라를 설치해서 테스트 해보자 with virtualbox
카산드라를 설치해서 테스트 해보자 with virtualbox카산드라를 설치해서 테스트 해보자 with virtualbox
카산드라를 설치해서 테스트 해보자 with virtualbox
 
Grub의 이해
Grub의 이해Grub의 이해
Grub의 이해
 
Compute shader
Compute shaderCompute shader
Compute shader
 
Cloudoc fujitsu desktop_svr_appliance_kor_20171013
Cloudoc fujitsu desktop_svr_appliance_kor_20171013Cloudoc fujitsu desktop_svr_appliance_kor_20171013
Cloudoc fujitsu desktop_svr_appliance_kor_20171013
 
why docker
why dockerwhy docker
why docker
 
스레드
스레드스레드
스레드
 
프로세스
프로세스프로세스
프로세스
 
실무로 배우는 시스템 성능 최적화 8부 - 1,2,3장
실무로 배우는 시스템 성능 최적화 8부 - 1,2,3장실무로 배우는 시스템 성능 최적화 8부 - 1,2,3장
실무로 배우는 시스템 성능 최적화 8부 - 1,2,3장
 

Similar to Operating system #1

150625 마이크로커널 운영체제 김지은
150625 마이크로커널 운영체제 김지은150625 마이크로커널 운영체제 김지은
150625 마이크로커널 운영체제 김지은jieun kim
 
20150502 unix v6로 배우는 커널의 원리와 구조 1 김지은
20150502 unix v6로 배우는 커널의 원리와 구조 1 김지은20150502 unix v6로 배우는 커널의 원리와 구조 1 김지은
20150502 unix v6로 배우는 커널의 원리와 구조 1 김지은jieun kim
 
백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나Daniel Shin
 
엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기
엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기
엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기흥래 김
 
윈도우 커널 익스플로잇
윈도우 커널 익스플로잇윈도우 커널 익스플로잇
윈도우 커널 익스플로잇Seungyong Lee
 
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arcNAVER D2
 
Windows 성능모니터를 이용한 SQL Server 성능 분석
Windows 성능모니터를 이용한 SQL Server 성능 분석Windows 성능모니터를 이용한 SQL Server 성능 분석
Windows 성능모니터를 이용한 SQL Server 성능 분석Sung wook Kang
 
프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법중선 곽
 
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)Ubuntu Korea Community
 
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018Amazon Web Services Korea
 
MySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxMySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxNeoClova
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018devCAT Studio, NEXON
 
Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...
Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...
Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...Cloud-Barista Community
 
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoLinux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoMario Cho
 
caanoo Device driver
caanoo Device drivercaanoo Device driver
caanoo Device driverjumiss
 
Assembly 스터디 1
Assembly 스터디 1Assembly 스터디 1
Assembly 스터디 1Jinkyoung Kim
 
모바일 게임 최적화
모바일 게임 최적화 모바일 게임 최적화
모바일 게임 최적화 tartist
 
일래스틱 서치 ch7. 일래스틱 서치 클러스터 세부사항
일래스틱 서치 ch7. 일래스틱 서치 클러스터 세부사항일래스틱 서치 ch7. 일래스틱 서치 클러스터 세부사항
일래스틱 서치 ch7. 일래스틱 서치 클러스터 세부사항Minchul Jung
 
젠킨스 설치 및 설정
젠킨스 설치 및 설정젠킨스 설치 및 설정
젠킨스 설치 및 설정중선 곽
 

Similar to Operating system #1 (20)

150625 마이크로커널 운영체제 김지은
150625 마이크로커널 운영체제 김지은150625 마이크로커널 운영체제 김지은
150625 마이크로커널 운영체제 김지은
 
20150502 unix v6로 배우는 커널의 원리와 구조 1 김지은
20150502 unix v6로 배우는 커널의 원리와 구조 1 김지은20150502 unix v6로 배우는 커널의 원리와 구조 1 김지은
20150502 unix v6로 배우는 커널의 원리와 구조 1 김지은
 
백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나
 
엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기
엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기
엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기
 
윈도우 커널 익스플로잇
윈도우 커널 익스플로잇윈도우 커널 익스플로잇
윈도우 커널 익스플로잇
 
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
 
Windows 성능모니터를 이용한 SQL Server 성능 분석
Windows 성능모니터를 이용한 SQL Server 성능 분석Windows 성능모니터를 이용한 SQL Server 성능 분석
Windows 성능모니터를 이용한 SQL Server 성능 분석
 
프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법
 
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
 
Kubernetes
Kubernetes Kubernetes
Kubernetes
 
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
 
MySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxMySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docx
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
 
Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...
Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...
Cloud-Barista 제1차 오픈세미나 : CB-Dragonfly-멀티 클라우드 통합 모니터링 프레임워크(1st Open Seminar...
 
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoLinux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
 
caanoo Device driver
caanoo Device drivercaanoo Device driver
caanoo Device driver
 
Assembly 스터디 1
Assembly 스터디 1Assembly 스터디 1
Assembly 스터디 1
 
모바일 게임 최적화
모바일 게임 최적화 모바일 게임 최적화
모바일 게임 최적화
 
일래스틱 서치 ch7. 일래스틱 서치 클러스터 세부사항
일래스틱 서치 ch7. 일래스틱 서치 클러스터 세부사항일래스틱 서치 ch7. 일래스틱 서치 클러스터 세부사항
일래스틱 서치 ch7. 일래스틱 서치 클러스터 세부사항
 
젠킨스 설치 및 설정
젠킨스 설치 및 설정젠킨스 설치 및 설정
젠킨스 설치 및 설정
 

More from Taewoo Kim

[김태우] Simplechat using firebase
[김태우] Simplechat using firebase[김태우] Simplechat using firebase
[김태우] Simplechat using firebaseTaewoo Kim
 
[김태우] 한국의 태초마을 유람기
[김태우] 한국의 태초마을 유람기[김태우] 한국의 태초마을 유람기
[김태우] 한국의 태초마을 유람기Taewoo Kim
 
[김태우] Soscon 후기
[김태우] Soscon 후기[김태우] Soscon 후기
[김태우] Soscon 후기Taewoo Kim
 
Eclipse 4 RCP - 2nd Week
Eclipse 4 RCP - 2nd WeekEclipse 4 RCP - 2nd Week
Eclipse 4 RCP - 2nd WeekTaewoo Kim
 
Eclipse rcp - first week
Eclipse rcp - first weekEclipse rcp - first week
Eclipse rcp - first weekTaewoo Kim
 
I know - Chrome and Plugin
I know - Chrome and PluginI know - Chrome and Plugin
I know - Chrome and PluginTaewoo Kim
 
Advanced operation system
Advanced operation systemAdvanced operation system
Advanced operation systemTaewoo Kim
 
Streaming join & lesson 4.
Streaming join & lesson 4.Streaming join & lesson 4.
Streaming join & lesson 4.Taewoo Kim
 
[Taewoo Kim] Real-Time Analytics with Apache Storm
[Taewoo Kim] Real-Time Analytics with Apache Storm[Taewoo Kim] Real-Time Analytics with Apache Storm
[Taewoo Kim] Real-Time Analytics with Apache StormTaewoo Kim
 
Real-Time Analytics with Apache Storm
Real-Time Analytics with Apache StormReal-Time Analytics with Apache Storm
Real-Time Analytics with Apache StormTaewoo Kim
 
One Week Project #1
One Week Project #1One Week Project #1
One Week Project #1Taewoo Kim
 
Storm - parallel and distributed
Storm - parallel and distributedStorm - parallel and distributed
Storm - parallel and distributedTaewoo Kim
 
Storm - understand by coding
Storm - understand by codingStorm - understand by coding
Storm - understand by codingTaewoo Kim
 
Real-time Video Analysis System
Real-time Video Analysis SystemReal-time Video Analysis System
Real-time Video Analysis SystemTaewoo Kim
 
Big Data & Hadoop by Skidmarkii
Big Data & Hadoop by SkidmarkiiBig Data & Hadoop by Skidmarkii
Big Data & Hadoop by SkidmarkiiTaewoo Kim
 
Apache Storm by Skidmarkii
Apache Storm by SkidmarkiiApache Storm by Skidmarkii
Apache Storm by SkidmarkiiTaewoo Kim
 

More from Taewoo Kim (16)

[김태우] Simplechat using firebase
[김태우] Simplechat using firebase[김태우] Simplechat using firebase
[김태우] Simplechat using firebase
 
[김태우] 한국의 태초마을 유람기
[김태우] 한국의 태초마을 유람기[김태우] 한국의 태초마을 유람기
[김태우] 한국의 태초마을 유람기
 
[김태우] Soscon 후기
[김태우] Soscon 후기[김태우] Soscon 후기
[김태우] Soscon 후기
 
Eclipse 4 RCP - 2nd Week
Eclipse 4 RCP - 2nd WeekEclipse 4 RCP - 2nd Week
Eclipse 4 RCP - 2nd Week
 
Eclipse rcp - first week
Eclipse rcp - first weekEclipse rcp - first week
Eclipse rcp - first week
 
I know - Chrome and Plugin
I know - Chrome and PluginI know - Chrome and Plugin
I know - Chrome and Plugin
 
Advanced operation system
Advanced operation systemAdvanced operation system
Advanced operation system
 
Streaming join & lesson 4.
Streaming join & lesson 4.Streaming join & lesson 4.
Streaming join & lesson 4.
 
[Taewoo Kim] Real-Time Analytics with Apache Storm
[Taewoo Kim] Real-Time Analytics with Apache Storm[Taewoo Kim] Real-Time Analytics with Apache Storm
[Taewoo Kim] Real-Time Analytics with Apache Storm
 
Real-Time Analytics with Apache Storm
Real-Time Analytics with Apache StormReal-Time Analytics with Apache Storm
Real-Time Analytics with Apache Storm
 
One Week Project #1
One Week Project #1One Week Project #1
One Week Project #1
 
Storm - parallel and distributed
Storm - parallel and distributedStorm - parallel and distributed
Storm - parallel and distributed
 
Storm - understand by coding
Storm - understand by codingStorm - understand by coding
Storm - understand by coding
 
Real-time Video Analysis System
Real-time Video Analysis SystemReal-time Video Analysis System
Real-time Video Analysis System
 
Big Data & Hadoop by Skidmarkii
Big Data & Hadoop by SkidmarkiiBig Data & Hadoop by Skidmarkii
Big Data & Hadoop by Skidmarkii
 
Apache Storm by Skidmarkii
Apache Storm by SkidmarkiiApache Storm by Skidmarkii
Apache Storm by Skidmarkii
 

Operating system #1

  • 2. 시작은 ‘계획’부터 하루 1장 (One Lesson) 끝내기 주 5일 (월~금) 총 12주 (~9월말)
  • 3. 1장. ‘가벼운’ 책 소개 1. OS 개발 과정에서 얻을 수 있는 세 가지 - 하드웨어와 소프트웨어를 모두 다뤄 볼 수 있다. - 문제 해결 능력을 기를 수 있다. - 큰 성취감을 느낄 수 있다. 2. OS를 개발하는 데 필요한 지식 - 하드웨어 지식 - 어셈블리어, C언어 - OS 이론, 각종 도구 사용법 (컴파일러, 링커, 도구)
  • 4. 2장. 개발 환경 구축 1. Cygwin (GCC, 크로스 컴파일러) 2. NASM (어셈블러) 3. Eclipse 4. QEMU (오픈 소스 프로세서 에뮬레이터) - 개발 관련 도구들의 버전 업 또는 변경으로 인한 직접 개발 환경 구축 실패 >> 책의 저자가 제공하는 가상OS를 통하여 해결
  • 5. 3장. 64비트 프로세서에 대하여 1. x86-64 프로세서의 운영모드 - 리얼 모드 : 프로세서의 초기 상태 16비트 모드 2^20의 주소공간 지원 (1GB) - 보호 모드 : 32비트 모드 (32비트 윈도우나 리눅스가 동작하는 기본모드) 세그먼트, 페이징, 멀티태스킹 기능 제공 2^32의 주소공간 지원 (4GB) - IA-32e 모드 : 두 가지 서브 모드가 존재 (32비트 호환 모드, 64비트 모드) 보호 모드보다 더 많은 레지스터와 기능들을 제공 2^64의 주소공간 지원 (16EB)
  • 6. 3장. 64비트 프로세서에 대하여 IA-32e 모드 보호 모드 리얼 모드 특정 레지스터의 필드를 조작하여 모드를 변경 전원 CR0-PE = 1 CR0-PE = 0 Reset CR0-PG = 1 CR4-PAE = 1 MSR-LME = 1 MSR-LME = 0 Reset
  • 7. 3장. 64비트 프로세서에 대하여 2. 레지스터 (Register) - 프로세서 내부에 있는 작은 공간 - 연산, 제어, 상태 표시, 디버깅 등의 목적으로 사용 1) 범용 레지스터 - 계산, 메모리 주소지정, 임시저장공간 등의 목적으로 사용 - 수가 많으면 수행 속도가 빨라짐 - 접두사, 접미사를 이용하여 다양한 크기의 레지스터에 접근 가능
  • 8. 3장. 64비트 프로세서에 대하여 2. 레지스터 (Register) - 프로세서 내부에 있는 작은 공간 - 연산, 제어, 상태 표시, 디버깅 등의 목적으로 사용 2) 세그먼트 레지스터 - 16비트 레지스터 - 주소영역을 다양한 크기로 구분하는 역할 >> 주소영역을 목적에 따라 구분하는 것
  • 9. 3장. 64비트 프로세서에 대하여 2. 레지스터 (Register) - 프로세서 내부에 있는 작은 공간 - 연산, 제어, 상태 표시, 디버깅 등의 목적으로 사용 3) 컨트롤 레지스터 - 운영 모드를 변경하고, 현재 운영 중인 모드의 특정 기능을 제어 - 레지스터의 각 필드는 저마다 특정 기능을 활성화 또는 비활성화 함 ex) CR0 레지스터의 비트 0의 값을 변경  리얼모드와 보호모드를 전환
  • 10. 3장. 64비트 프로세서에 대하여 3. 메모리 관리 기법 - 세그멘테이션 : 전체 영역을 원하는 크기로 나누어 관리 (케이크) - 페이징 : 일정한 단위로 잘라진 조각을 모아 원하는 크기로 관리 (식빵) 1) 리얼 모드에서는 - 최대 2^20의 주소공간을 사용 - 세그멘테이션만을 지원 (세그먼트 크기는 64K로 고정) - 바로 물리 주소 공간을 접근
  • 11. 3장. 64비트 프로세서에 대하여 3. 메모리 관리 기법 - 세그멘테이션 : 전체 영역을 원하는 크기로 나누어 관리 (케이크) - 페이징 : 일정한 단위로 잘라진 조각을 모아 원하는 크기로 관리 (식빵) 2) 보호 모드에서는 - 최대 2^32의 주소공간을 사용 - 세그멘테이션과 페이징 모두 지원 - 세그먼트 디스크립터를 이용하여 선형 주소 영역을 관리 - 세그멘테이션으로 생성된 선형주소를 페이징을 통해 물리주소로 변경
  • 12. 3장. 64비트 프로세서에 대하여 10 bit 10 bit 12 bit CR3 Page Directory Page Table Physical Memory Logical address
  • 13. 3장. 64비트 프로세서에 대하여 3. 메모리 관리 기법 - 세그멘테이션 : 전체 영역을 원하는 크기로 나누어 관리 (케이크) - 페이징 : 일정한 단위로 잘라진 조각을 모아 원하는 크기로 관리 (식빵) 3) IA-32e 모드에서는 - 최대 2^40의 주소공간을 사용 - 디스크립터와 관계없이 64비트 전체 주소 공간으로 설정 - 페이징 단계가 총 5단계