Watch video on Youtube! : http://www.youtube.com/watch?v=aZDKyNtSqOo
장소 : 서울시 용산구 원효로 3가 53-5 청진 빌딩 10층 1004호 TERA TEC 사무실
시간 : 2010년 1월 30일 토요일 오후 2:00
발표 : 김성윤님, 강분도님, 노태상님 - 리눅스 커널 - 개요 및 이슈,
세미나 정보 : http://www.ubuntu.or.kr/viewtopic.php...
Place : TERA TEC Office, 1004, 10th floor, Cheongjin Bldg., Wonhyoro 3-ga, Yongsan-gu, Seoul, Korea
Time : 14:00, Saturday, 2010Y 1M 30D
Presentation : Kim Seongyun, Kang Bundo, Noh Taesang - Linux Kernel - Outline and issue
Seminar Info : http://www.ubuntu.or.kr/viewtopic.php...
About Ubuntu
Ubuntu is an ancient African word meaning 'humanity to others'.
It also means 'I am what I am because of who we all are'.
The Ubuntu operating system brings the spirit of Ubuntu to the world of computers.
http://www.ubuntu.com
About Ubuntu Korea Community
We want to be happy using Ubuntu.
'Korean Ubuntu User Forum' Welcomes your voluntary supports.
http://www.ubuntu-kr.org
1. 마스터 제목 스타일 편집
1 1 리눅스 커널
- 개요 및 이슈
2010. 1. 29
노태상
2. 마스터 제목 스타일 편집
리눅스 커널 개요
커널 개요
리눅스 커널 개요
리눅스 커널 기본기능
리눅스 커널 부팅
2 2
3. 마스터 제목 스타일 편집
3 3
커널 개요 - 운영체제란?
운운영영체체제제란란??
자원 관리자 (Resource Manager)
운운영영체체제제가가 관관리리해해야야 될될 자자원원
물리적 자원
CPU, 메모리, 디스크, 터미널, 네트워크 등 시스템을 구성하
고 있는 요소들과 주변장치 등
추상적 자원
태스크(task), 쓰레드(thread) : CPU 추상화
세그먼트(segment), 페이지(page) : 메모리 추상화
파일, inode : 디스크 추상화
프로토콜, 패킷 : 네트워크 추상화
4. 마스터 제목 스타일 편집
4 4
커널 개요 - 커널이란?
커커널널이이란란??
운영체제를 이루는 가장 핵심적인 소프트웨어
운영체제를 구성하고 있는 핵심으로서 타깃보드의 시스템 구동에
필요한 환경설정과 수행되는 프로그램들을 관리하는 소프트웨어
커커널널의의 세세부부 기기능능
프로세스 관리 (Process Management)
메모리 관리 (Memory Management)
파일 시스템 관리 (File System Management)
장치 관리 (Device Management)
네트워크 관리 (Network Management)
5. 마스터 제목 스타일 편집
5 5
커널 개요 - 커널의 기능
프프로로세세스스 관관리리
프로세스의 생성 및 소멸
프로세스 간 통신
CPU 스케줄링
메메모모리리 관관리리
가상 메모리 관리
메모리 하드웨어 관리
파파일일 시시스스템템 관관리리
가상 파일 시스템에 의한
여러 파일 시스템 타입 지
원
디스크 물리적 구조를 논리
적 구조로 표현
장장치치 관관리리
입출럭 요청 검증
입출력 요청 작언 스케줄
링
주변장치와 메모리 간의
자료전송
네네트트워워크크 관관리리 인터럽트 요청 처리
통신 프로토콜 구현
네트워크 라우팅 및 주소지
정
7. 마스터 제목 스타일 편집
7 7
커널 개요 - 커널의 종류
MMoonnoolliitthhiicc KKeerrnneell
MMiiccrroo KKeerrnneell
리눅스는 Monolithic Kernel임
8. 마스터 제목 스타일 편집
8 8
리눅스 커널 개요
리리눅눅스스 커커널널의의 역역할할
응용 프로그램이 동작하기 위한 기본 환
경을 제공
응용 프로그램은 최소한의 절차로 응용
프로그램 본래의 목적인 처리를 실행할
수 있게 함
응용 프로그램을 대신하여 하드웨어를 제
어하는 편리한 기능을 제공
응용 프로그램의 요청(시스템 콜)을 받아
동작하는 이벤트 중심의 프로그램
응용 프로그램으로부터 시스템 콜이 요청
되거나 하드웨어로부터 인터럽트가 요청
되면, 그 요청에 대응하는 처리를 수행함
응응용용 프프로로그그램램과과 커커널널
11. 마스터 리눅스 커널 개요 제목 - 리눅스 스타일 커널의 장점
편집
리리눅눅스스 장장점점 리리눅눅스스 모모듈듈
11
11
모
듈
적재
제거
사용
자
영역
커널
영역
오래되었고 많은 사람들이 사용
검증됨, 안정적, 다양한 기능 제공
오픈 소스, 오픈 아키텍처
수많은 개발자에 의하여 발전됨
개발자 필요에 이하여 변경가능
소규모 모듈단위로 설계됨
구조 변경 및 재구성이 용이
동적 로딩 및 제거 가능 커널코드 제공
다중 프로세서 지원
SMP(Symmet r ic Mul t i Processing)
지원
실시간 운영을 지원함
실시간 임베디드 분야에 활용 가능
13. 마스터 리눅스 커널 기본 제목 기능 – 스타일 프로세스 관리
편집
13
13
프프로로세세스스 관관리리
프로그램의 실행상태를 관리
리눅스 커널은 지정된 프로그
램을 실행하기 위한 환경을
구축하고, 프로그램의 실행이
끝나면 이들을 깨끗하게 정리
함
프프로로세세스스 관관리리를를 위위한한 커커널널의의 자자료료구구조조
프로세스 ID, 그룹 ID, 세션 ID
실행 우선순위
프로세스 공간 정보
이용 중인 파일에 관한 정보 등
<실행가능 프로세스와 프로세스 스케줄
링>
14. 마스터 리눅스 커널 기본 제목 기능 – 스타일 프로세스 관리
편집
14
14
시시그그널널
프로세스에 비동기 이벤트를 전달하기 위한 간단한 장치
시그널을 받은 프로세스는 실행을 일단 중지 후 시그널 핸들러를 실행
한 후 다시 중단된 지점부터 프로세스의 실행을 재개함
스스레레드드((TThhrreeaadd))
리눅스 커널 스레드는 일종의 프로세스로 구현되고 있음
프로세스와 다른 점
스레드 간에 프로세스 공간을 공유
스레드 관련 정보를 관리
프로세스를 관리하는 데이터 구조를 그대로 이용하여 스레드를 관리함
프로세스 스케줄러의 입장에서 프로세스와 스레드는 동일
POSIX 스레드 인터페이스는 리눅스 커널에서 기본으로 제공하는 인터
페이스가 아니라 라이브러리에 의해 커널 스레드 인터페이스로 변환됨.
15. 마스터 리눅스 커널 기본 제목 기능 – 스타일 메모리 관리
편집
15
15
물물리리 메메모모리리 관관리리
물리 메모리를 페이지 단위로 관리함
페이지
가상메모리를 사용할 때 CPU에서 지원하는 메모리 관리의 최소 단위
임
페이지 크기는 CPU 종류에 따라 다름
버디 시스템(Buddy System)
페이지 단위로 물리메모리의 빈 영역을 효율적으로 관리하기 위한 구
조
서로 이웃한 빈 영역을 결합하여 보다 큰 빈 영역을 생성
슬랩 할당자(Slab Allocator)
페이지보다 작은 메모리 영역을 효율적으로 관리하기 위한 관리 구조
내부 단편화(f ragment) 발생을 최소화
메모리 캐시 이용 효율을 고려한 메모리 관리 방식
16. 마스터 리눅스 커널 기본 제목 기능 – 스타일 메모리 관리
편집
16
16
가가상상 메메모모리리 관관리리
물리적으로 분산된 페이지를 모아서 가상공
간에 연속으로 할당
물리 메모리의 단편화 문제를 고려할 필요
가 없음
다중 가상 공간 사용
각 프로세스의 주소 공간을 독립적으로 할
당함
<다중 가상 공
간>
요요구구 페페이이징징((DDeemmaanndd PPaaggiinngg))
참조가 발생한 영역에 대해 페이지 단위로 물
리 메모리를 할당하는 기법
스왑(Swap) 시스템
참조 빈도가 낮은 영역의 물리메모리는
반환
COW(Copy-On-Wr ite)
17. 마스터 리눅스 커널 기본 제목 기능 – 스타일 파일 시스템 관리
편집
17
17
파파일일 시시스스템템
기억 장치 상의 데이터를 파일이라고 하는 형식을 통해서 액세스 순서를
일관성 있게 제공함
리눅스 커널은 디바이스나 커널 내의 데이터 구조도 파일로 처리함
리눅스 커널은 각각의 파일에 i-노드로 불리는 데이터 구조를 할당하여
관리함
파일 디스크립터를 통하여 파일에 접근
캐캐시시((CCaacchhee))
리눅스 커널은 파일 접근을 빠르게 하기 위하여 각종 데이터를 메모리에
보관함
페이지 캐시 : 파일 데이터 자체를 보관함
i-노드 캐시 : 자주 사용되는 파일의 i-노드를 복사해서 메모리에 보관함
Dent ry 캐시
파일 이름을 보관, 경로 탐색을 빠르게 하기 위해 사용됨
커널이 수행하는 처리 중에서 가장 중요한 처리 중의 하나임
18. 마스터 리눅스 커널 기본 제목 기능 – 스타일 파일 시스템 관리
편집
18
18
가가상상 파파일일 시시스스템템((VVFFSS))
<파일 시스템 계층>
사용자는 이용하고 있는 파일시스템이 어떤 파일시스템인지 알 필요가
없음
하위 파일시스템의 형식에 의존하지 않고 동일한 인터페이스로 조작할
수 있음
가상파일시스템 아래에는 다양한 종류의 파일시스템을 배치할 수 있음
19. 마스터 리눅스 커널 기본 제목 기능 – 스타일 파일 시스템 관리
편집
파파일일시시스스템템 관관련련 용용어어들들
19
19
로컬 파일 시스템
네트워크 파일 시스템
유사 파일 시스템
기억 장치 위에 있는 파일 이외의 것을 진짜 파일인 것처럼 가장하는 파일 시스
템
proc 파일 시스템, sysfs 파일 시스템
리눅스 표준 파일 시스템
ext2
저널링(journal ing) 파일 시스템 ext3
Ext2 파일 시스템에 저널링 기능을 추가
내결함성(fault tolerance)을 높이는 것으로 시스템의 이상종료 후 파일시스템
복구를 최적화하기 위하여 도입됨
블록 디바이스
파일 시스템의 요청에 따라 실제로 입출력 처리를 수행
버퍼 및 페이지 단위로 입출력 수행
20. 마스터 리눅스 커널 기본 제목 기능 – 스타일 장치 관리
편집
AApppplliiccaattiioonn
SSyysstteemm CCaallll IInntteerrffaaccee
VViirrttuurree FFiillee SSyysstteemm((VVFFSS))
BBuuffffeerr CCaacchhee
Appl icat ion
리눅스 커널은 장치관리 구조로 파일 시스템을 사용함
20
20
Character
Device Driver
HHaarrddwwaarree
Network
Subsystem
DDeevviiccee IInntteerrffaaccee
Area
Kernel Area
Hardware
Block
Device Driver
Network
Device Driver
BBSSDD ssoocckkeett
IInneett((AAFF__IINNEETT))
Transport(TCP,UD
P)
NNeettwwoorrkk((IIPP))
21. 마스터 리눅스 커널 기본 제목 기능 – 스타일 네트워크 관리
편집
21
21
소소켓켓
임의의 프로세스
및 프로세서간 통
신
하위층에 다양한
통신프로토콜을
정의할 수 있음
소켓 인터페이스
는 리눅스 커널
내에 구현됨
<TCP/IP 프로토콜 스택 계
층>
22. 마스터 제목 스타일 편집
22
22
리눅스 커널 부팅
임임베베디디드드 리리눅눅스스 커커널널 생생성성 절절차차
31. 마스터 제목 스타일 편집
리눅스 커널 이슈
• 프로세스 스케줄링
• 인터럽트
• 지연처리
• 타이머
• 시스템 콜
• 동기화
31
31
32. 마스터 제목 스타일 편집
32
32
프로세스 스케줄링
프프로로세세스스란란??
프로그램이 움직이고 있는 상태
프로그램은 1개이더라도 그 프로그램을 실행하고 있는 프로세스는
여러 개 존재할 수 있음
콘텍스트(Context)
프로세스가 동작하기 위한 프로세스 공간과 프로세스가 동작할 때
의 레지스터 값 등
각각의 프로세스는 콘텍스트를 가짐
리눅스 커널에서는 스레드도 일종의 프로세스로 관리함
task_struct 구조체
개개의 프로세스 및 스레드에 관한 정보 저장 구조체
33. 마스터 제목 스타일 편집
33
33
프로세스 스케줄링
프프로로세세스스 전전환환
Process
Switch
Process
Dispatch
34. 마스터 제목 스타일 편집
34
34
프로세스 스케줄링
프프로로세세스스 스스케케줄줄러러
응답 성능
Preemption
처리율
(Throughput)
35. 마스터 제목 스타일 편집
35
35
프로세스 스케줄링
프프로로세세스스 실실행행 우우선선순순위위
36. 마스터 제목 스타일 편집
36
36
프로세스 스케줄링
멀티프로세서 멀티프로세서 시시스스템템에에서서의의 프프로로세세스스 스스케케줄줄링링
<프로세스와 캐시의 관계>
37. 마스터 제목 스타일 편집
37
37
프로세스 스케줄링
OO((11)) 스스케케줄줄러러 구구조조
38. 마스터 제목 스타일 편집
38
38
프로세스 스케줄링
프프로로세세스스 상상태태
실행가능 상태
실행상태
실행 준비 상태
대기상태
INTERRUPTIBLE
UNINTERRUPTIB
LE
39. 마스터 제목 스타일 편집
39
39
프로세스 스케줄링
프프로로세세스스 상상태태 천천이이
40. 마스터 제목 스타일 편집
40
40
프로세스 스케줄링
대대기기 프프로로세세스스의의 wwaakkee__uupp
41. 마스터 제목 스타일 편집
41
41
프로세스 스케줄링
wwaakkee__uupp 함함수수 집집합합
42. 마스터 제목 스타일 편집
42
42
프로세스 스케줄링
복복수수 이이벤벤트트 대대기기
43. 마스터 제목 스타일 편집
43
43
인터럽트 (Interrupt)
인인터터럽럽트트
하드웨어가 리눅스 커널 기능을 호출하는 구조
프로세스가 리눅스 커널 기능을 호출할 때는 시스템 콜 사용
리눅스 커널에 있어서 중요한 이벤트
리눅스 커널은 이벤트 구동형 프로그램임
디바이스를 효율적으로 제어하기 위한 구조
리리눅눅스스 커커널널 인인터터럽럽트트 처처리리의의 특특징징
응답성의 확보
하드웨어 인터럽트 (IRQ)
소프트 인터럽트 (IRQ)
멀티 프로세서의 대응
<인터럽트 응답성 처리 예>
44. 마스터 제목 스타일 편집
44
44
인터럽트 (Interrupt)
인인터터럽럽트트의의 종종류류
45. 마스터 제목 스타일 편집
45
45
인터럽트 (Interrupt)
인인터터럽럽트트의의 발발생생 및및 처처리리
47. 마스터 제목 스타일 편집
47
47
인터럽트 (Interrupt)
인인터터럽럽트트 핸핸들들러러 등등록록 함함수수
48. 마스터 제목 스타일 편집
48
48
인터럽트 (Interrupt)
하하드드웨웨어어 인인터터럽럽트트 기기동동 구구조조
49. 마스터 제목 스타일 편집
인터럽트 (Interrupt) – 하드웨어 인터럽트 제어 함수
<하드웨어 인터럽트 제어함수(CPU 레벨)>
<하드웨어 인터럽트 제어함수(인터럽트 컨트롤러 레
49
49
벨)>
50. 마스터 제목 스타일 편집
50
50
인터럽트 (Interrupt)
인인터터럽럽트트 요요청청 보보류류
51. 마스터 제목 스타일 편집
51
51
지연처리 (delay)
인인터터럽럽트트 지지연연처처리리
소프트 인터럽트
하드웨어 인터럽트를 금지하지 않음
소프트 인터럽트 핸들러는 그 원인을 제공한 하드웨어 인터럽트
핸들러와 동일한 CPU 상에서 동작함
하드웨어 인터럽트 핸들러가 요청할 때 발생함
소프트 인터럽트 핸들러는 하드웨어 인터럽트 핸들러에서 수행한
처리를 물려받아 동작함
Tasklet
소프트 인터럽트를 범용화한 구조
하드웨어 인터럽트와 제휴하여 효율적으로 동작함
52. 마스터 제목 스타일 편집
52
52
지연처리 (delay)
소소프프트트 인인터터럽럽트트 데데이이터터 구구조조
53. 마스터 제목 스타일 편집
53
53
지연처리 (delay)
소소프프트트 인인터터럽럽트트 종종류류
54. 마스터 제목 스타일 편집
54
54
지연처리 (delay)
소소프프트트 인인터터럽럽트트 제제어어 함함수수
55. 마스터 제목 스타일 편집
지연처리 (delay) – workqueue (지연처리 구현 구조)
55
55
WWoorrkkqquueeuuee의의 구구조조
주로 프로세스 콘텍스
트 처리 지연에 이용
됨
각종 D/D 지연실행
블록 I/O요청의 지연
실행
비동기 I/O 처리
56. 마스터 제목 스타일 편집
지연처리 (delay) – workqueue (지연처리 구현 구조)
56
56
타타이이머머 리리스스트트와와 wwoorrkkqquueeuuee
57. 마스터 제목 스타일 편집
지연처리 (delay) – workqueue (지연처리 구현 구조)
WWoorrkkqquueeuuee 제제어어 함함수수
57
57
58. 마스터 제목 스타일 편집
58
58
타이머 (Timer)
타이머의 역할 리리눅눅스스 타타이이머머
시간 count
제한 시간 관리
• 통신처리에서의 재 발송 처리
• 응답 없는 디바이스에 대한 실행 재처리
• 주기적인 폴링 처리
• SIGALRM 시그널 생성
리눅스 커널은 주기적으로 발생하는 인터럽트(타이머 인터
럽트)를 이용하여 타이머 기능을 동작 시킴
리눅스 타이머 종류
글로벌 타이머
CPU 로컬 타이머
59. 마스터 제목 스타일 편집
59
59
타이머 (Timer)
리리눅눅스스 타타이이머머의의 동동작작
60. 마스터 제목 스타일 편집
60
60
타이머 (Timer)
로컬타이머 로컬타이머 소소프프트트 인인터터럽럽트트 핸핸들들러러 실실행행
61. 마스터 타이머 (Timer) 제목 – 타이머 스타일 리스트
편집
61
61
타타이이머머 벡벡터터의의 분분할할
타이머 리스트
- 이미 설정된 일정시
간 후에 콜백되는 핸
들러를 등록하기 위
한 범용적인 구조
62. 마스터 타이머 (Timer) 제목 – 타이머 스타일 리스트
편집
62
62
ttvv11 벡벡터터의의 실실행행
63. 마스터 타이머 (Timer) 제목 – 타이머 스타일 리스트
편집
63
63
ttvv22 벡벡터터를를 ttvv11벡벡터터로로 대대체체
64. 마스터 타이머 (Timer) 제목 – 타이머 스타일 리스트
편집
64
64
타타이이머머 리리스스트트 관관련련 제제어어함함수수
65. 마스터 타이머 (Timer) 제목 – 구간( interval 스타일 ) 타이머
편집
65
65
인인터터벌벌 타타이이머머
절대시간 지정 타이머
SIGALRM
실행시간 지정 타이머
SIGVTLALARM
SIGPROF
66. 마스터 제목 스타일 편집
66
66
시스템 콜 (system Cal l )
시시스스템템 콜콜이이란란??
프로세스가 커널에게 명시적으로 서비스를 요청하는 인터페이스
커널이 사용자 수준 응용에게 서비스를 제공하는 인터페이스
사용자 모드에서 사용할 수 있도록 밖으로 노출되어 있는 커널 함
수
Software Inter rupt를 통한 커널에 대한 서비스 요청
시스템 콜을 하게 되는 순간부터 사용자 모드에서 커널 모드로 전
환됨
시스템 콜을 시작하면 커널코드가 사용자 프로세스 환경
(context) 아래에서 동작하게 됨
시스템 콜을 일으키는 루틴을 wrapper routine이라 함
open()은 sys_open()의 wrapper routine
67. 마스터 제목 스타일 편집
67
67
시스템 콜 (system Cal l )
시시스스템템 콜콜 예예
프로세스 관리자가 제공하는 서비스와 관련된 시스템 콜
fork(), execve(), getpid(), signal() 등
파일 시스템이 제공하는 서비스와 관련된 시스템 콜
open(), rea(), wr ite(), ioct l(), close() 등
메모리 관리자가 제공하는 시스템 콜
brk() 등
네트워크 관리 부분과 관련된 시스템 콜
socket(), bind(), connect() 등
디바이스 드라이버가 제공하는 시스템 호출
없음
68. 마스터 제목 스타일 편집
68
68
시스템 콜 (system Cal l )
보보호호 모모드드
<보호 모드>
보호모드
커널은 커널 자체 프로세스나 커
널 자원을 보호하기 위하여 CPU
가 제공하는 보호 기능을 사용함
프로세스가 직접 커널 함수(실행
코드)를 호출할 수 없게 함
리눅스 특권 레벨
레벨 0 : 커널 레벨
레벨 3 : 사용자 프로세스 레벨
레벨 1,2 : 사용 않음
특권 레벨의 변경
소프트웨어 인터럽트 (sof tware
inter rupt)
69. 마스터 제목 스타일 편집
시스템 콜 (system Cal l ) – 시스템 콜 인터페이스
69
69
70. 마스터 제목 스타일 편집
70
70
시스템 콜 (system Cal l )
시시스스템템 콜콜 처처리리 과과정정 –– xx8866
72. 마스터 제목 스타일 편집
72
72
시스템 콜 (system Cal l )
시시스스템템 콜콜의의 종종류류
시시스스템템 콜콜 핸핸들들러러 등등록록
73. 마스터 시스템 콜 – 시스템 제목 콜 처리 스타일 예 : fread( ) 편집
호출
73
73
74. 마스터 동기화 (Synchronization) 제목 스타일 – 필요성
편집
74
74
커커널널 처처리리의의 특특성성
커널 핸들러의 비동기적 & 동시 실행
프로세스의 시스템 콜
외부 장치로부터의 인터럽트
동일한 자원이나 서로 관련된 자원을 사용하는 등 경쟁이 발생함
배배제제((EExxcclluussiioonn)) 처처리리
여러 커널 핸들러가 동시에 실행되더라도 특정 커널 핸들러가 어
떤 자원을 사용하고 있는 동안에 또 다른 핸들러가 이 자원에 영
향을 주지 못하도록 접근하지 못하게 하는 방법
시스템에 준비된 배제
프로세스 콘텍스트 사이
인터럽트 콘텍스트
다른 CPU 상의 콘텍스트
75. 동기화 (Synchronization) – 프로세스 콘텍스트 사이에서의
배제
마스터 제목 스타일 편집
75
75
세세마마포포어어 동동작작
세마포어
비교적 긴 시간을 확보하는 자원에 대해서 이
용
세마포어 이용 예
파일 접근 배제 : i-노드 관리 구조체
77. 동기화 (Synchronization) – 프로세스 콘텍스트 사이에서의
배제
마스터 제목 스타일 편집
읽읽기기//쓰쓰기기 세세마마포포어어에에 대대한한 갱갱신신 접접근근
77
77
78. 동기화 (Synchronization) – 프로세스 콘텍스트 사이에서의
배제
마스터 제목 스타일 편집
읽읽기기//쓰쓰기기 세세마마포포어어 관관련련 함함수수
78
78
79. 동기화 (Synchronization) – 프로세스 콘텍스트 사이에서의
배제
마스터 제목 스타일 편집
선선점점 금금지지에에 의의한한 접접근근 배배제제
79
79
선점(Preemption)
커널 2.6부터는 커널코
드 실행 중에도 선점
가능
CPU 종속 자원에 대한
배제 필요 시 명시적으
로 선점을 금지할 필요
가 있음
스핀락은 필요 없음
81. 마스터 제목 스타일 편집
동기화 (Synchronization) – 인터럽트 콘텍스트의 배제
인인터터럽럽트트 금금지지에에 의의한한 접접근근 배배제제
81
81
82. 마스터 제목 스타일 편집
동기화 (Synchronization) – 인터럽트 콘텍스트의 배제
소프트 소프트 인인터터럽럽트트 금금지지에에 의의한한 접접근근 배배제제
82
82
83. 마스터 제목 스타일 편집
동기화 (Synchronization) – 인터럽트 콘텍스트의 배제
인인터터럽럽트트 금금지지 관관련련 함함수수
83
83
84. 마스터 제목 스타일 편집
동기화 (Synchronization) – 멀티프로세서 환경에서의 배제
스스핀핀락락에에 의의한한 배배제제
84
84
스핀락(Spin Lock)
멀티프로세서 시스템
에서 CPU감 경쟁을
조정하기 위한 배제
구조
Busy wait
잠금 변수를 취득하
지 못한 CPU는 잠금
이 해제될 때까지 그
자리에서 계속 기다
림
85. 마스터 제목 스타일 편집
동기화 (Synchronization) – 멀티프로세서 환경에서의 배제
읽읽기기//쓰쓰기기 스스핀핀락락에에 의의한한 배배제제
85
85
86. 마스터 제목 스타일 편집
동기화 (Synchronization) – 멀티프로세서 환경에서의 배제
86
86
스스핀핀락락 관관련련 함함수수
87. 마스터 제목 스타일 편집
동기화 (Synchronization) – RCU (Read Copy Update)
87
87
RRCCUU 동동작작 예예
RCU
멀티프로세서 시
스템 전용의 배
제 처리
커널 2.6에서
도입됨
포인터로 결합된
데이터 구조를
보호할 때 이용
함
빈번하게 배제가
필요한 자원에
유용
88. 마스터 제목 스타일 편집
동기화 (Synchronization) – 메모리 장벽 (Memory Barrier)
메메모모리리 장장벽벽??
88
88
메모리 장벽이란?
실제 메모리 상의 데이터 접근의 순서가 제대로 지켜지
지 않음
메모리 접근 순서가 지켜져야 하는 이유
메모리 상의 데이터를 각종 I/O 컨트롤러와 교환
다른 CPU로부터 참조나 갱신을 하기 위하여 CPU 간의
동일한 데이터 참조
메모리 장벽의 원인
내부에서 명령어의 순서를 바꿔서 실행하는 CPU 존재
(CPU 자원 효율화 목표)
89. 마스터 제목 스타일 편집
동기화 (Synchronization) – 메모리 장벽 (Memory Barrier)
명명령령어어 순순서서 변변경경의의 경경우우 -- AARRMM
사이클 1 2 3 4 5 6 7 8 9 10
89
89
F D E
명령
ADD R0, R1, R2
M W
SUB R1, R2, R4 F D E
M W
AND R2, R1, R0 F D E
M W
LDR R4, [ R5 ] F D E
M W
XOR R0, R4, R2 F D I
E
M W
ADD R1, R2, R3 F I
D E
SBC R1, R2, R3 F D
F : Fetch D : Decode E : Execute M : Memory W : Write I : Interlock
M
E
90. 마스터 제목 스타일 편집
동기화 (Synchronization) – 메모리 장벽 (Memory Barrier)
메메모모리리 장장벽벽 처처리리 매매크크로로
90
90