issues
search
Romanof123
/
document
0
stars
0
forks
source link
qnx 아키텍쳐
#1
Open
Romanof123
opened
4 years ago
Romanof123
commented
4 years ago
qnx는 POSIX base입니다. -4
qnx bsp는 별로 없다. bsp를 커스텀하기 어려워 그래서 리눅스 코드를 가지고 올수 있음 배끼면 80-90퍼는 가지고 올수 있습니다. os api빼고는 재활용가능
전통적인 real time executive -5
메모리에 모든 시스템 내용이 다들어간다.
전통적인 monolithic kernerl os는 -6
시스템과 user application을 분리.
driver같은 하나만 문제가 생겨도 전체 kernel 시스템이 멈출수 있음
qnx neutriono os -7-8
모든 드라이버 어플리케이션이 별개의 프로세스로 동작한다.
그래서 프로세스가 다 나눠져있어서 IPC가 필요하게되었다.
프로세스로 세분화 되어서 서로 프로세스간의 커뮤니케이션이 필요하여 IPC 시스템이 발달하게됨.
교육3일날에 IPC만 교육
qnx 프로세스의 예는 뭘까? - 9
모든 시스템을 프로세스로 컨트롤 한다.
디바이스 드라이버 네이밍룰 .devb 블록 디바이스, devc 캐릭터 디바이스
마이크로 커널 장점을 뭘까? -10
프로세스가 문제가 생기면 다시 실행하면된다. 강제 종료는 slay (마이크로커널에서 가장 좋고 중요한 기능 )
모든것이 프로세스 단위이기 때문에 디버깅이 쉽다고한다.
마이크로 커널 단점은 뭘까 -10
컨택스트 스위칭이 너무 많음.
메모리 포인터 전달이 (메모리 카피로 정보 전달)
qnx의 프로세스 -11
프로그램이라고 보면 이해하기 쉽다.
프로세스 리소스는 메모리, 스레드를 소유함. 모든 리소스의 오너는 프로세스.
쓰레드가 무엇인가! -12
실제 프로세스에서 일을하는 주체.
os 우선순위에 따라 쓰레드가 동작하게 된다.
프로세스랑 스레드는 뭔차야 -14
넓게 보면 프로세스안에 쓰레드가 포함되어있다.
쓰레드가 실제 일을 하는 주체이며 모든 자원과 쓰레드를 프로세스가 가지고있다.
커널은 왜 중요한가. -16
시스템 전체를 통합해준다.
유저들은 api를 통해서 개발하게된다.
시스템의 핵심은 커널이다.-17
각각의 프로세스들은 커널이 주는 인터럽트 시그널들을 받아서 일을 하게된다.
커널 콜-18 19 20
커널 콜 API는 앞문자에 대문자를 표시한다.
hardware interrupt 도 우선순위에 따라 먼저 동작하는 isr에 process를 넘겨주게된다..
커널 콜 장단이뭐여 -21
레이턴시가 지들은 좋다고하는데 다른거랑 별차이 없음.
그냥 순위 높은놈 가지고가니까 시스템이 가벼워서 빨라보이는거지 별차이읍성.
빵셔틀은 양아치가 자꾸 앞에 들어와서 점심 식당에서 더오래 기다리겠지....
큐엔엑스는 뭔기능이있을까 -22
ipc
스케쥴럭
타이머
인터럽트 리다이렉션
싱크로나이제이션하는겨 시스템 싱크맞춰줘잉
ipc -23
qnx 독자적인 ipc가 메세지랑 펄스라네?
시그널 파이프 메세지큐 리눅스서 하는것도함.
메세지 -24
클라이언트 서버 동작으로한다네?
클라이언트가 샌드 리플라이롤 동기한다고하네
펄스 -25
펄스는 비동기여 보내면 끝이야 확인안해도되영
펄스는 5바이트 고정이여 더이상못보내 비동기라는데
시그널 -26
리눅스 하듯이 하는거 인터럽트처럼 시그널 날림 (스래드로 날림)
시그널 펑션 핸들러가 실행됩니다. 거시기 뿅함. (SIGTEMP 이딴거)
스레드 -27
스레~드
멀티스레드 싱크로나이즈 -28
뮤텍스~
콘도바
세마포어~
조인~
타임 기능 -29
타이머 인터럽트를 이용해서 거시기함.
인터럽트 -30
외부에서 인터럽트 생기면 커널이 받아서 등록된 서비스를실행시킴 (드라이버 같은데에)
isr이 없어동 스레드에서 딜리버리 할수 있우
커널 정리 해볼까 -31
커널 커널 콜로 사용가능하다. 라이브러리리로.
외부 인터럽트로 커널 불러씀
프로세스에서 미쳐서 폴트나 익셉션 나면 커널 불러(사람불러~)
프로세스 메니졍-33
커널에서 관리하는 프로세스 라네 매니저를 뽑아놓음.
프로세스메니저는 커널 메모리랑 같은 메모리 공간. (커널은 라이브러리로 돌고 실제 프로세스 매니저가 실제관리자 ) 편의점 지어놓고 알바만 돌리는거
프로세스 매니저는 뭐함? -34
프로세스 관리하지 당연
메모리관리도 해줭
path네임관리
idle 스레드 관리한데 priority순위 꼴지 0번이네
프로세스 매니저가 메모리 관리 어케함? -35 36
버추얼 어드레스 스페이스로 커널 어드레스 유저 어드레스 관리스
qnx 7버전은 64비트라네 이전버전은 32비트
버추얼 피지컬 메모리 영역 -37
ipc로 pointer 보내줘도 버추얼 메모리 주소라 다른데서 받아도 못써용
프로세스들끼리 쉐어드 메모리도 다르게 맵핑될수도잇어
path name -38
디바이스 네임이라네(리눅스 디비이스 네임과 같어) 오너는 procnto라는데? 이건확인좀.
프로세스메니저가 관리해 패스네임
스케줄링 -41
스레드는 두가지 상태가있어 blocked랑 runnable,,
blocked는 cpu 안쓸때
데이터 읽어가려고 기다릴때염.
runnable
cpu 쓸때염 -running
돌라카는데 프로세스 높은놈이 돌고있어서 아직못돌고 있을때 ready
Priority -42
255까지 있는데 0이 낮고 255가 가장 빨리 실행(하아꾸)
높은놈이 잡고있어 그럼 낮은놈은 평생못들어와
blacked는 논체크여
priority - 43
그림에서 devb-eide가 돌고 잇겠네
priority -44
그림 에서 blocked 빼고는 os가 다 관리한다.
a처럼 우선순위가 같으면 스케줄링 알고리듬으로 고름다.
hard ware isr이 priority보다 더높아.
priority 스캐줄링 알고리듬 -45
라운드로빈 round robin
우선순위 똑같은놈은 a,b,c,가 있는데 그놈들을 돌아가면서 해줌다.
a,b,c가 순서대로 레디가 되었으면 a,b,c를 4ms동안하고 이어달리기 하게된다. a->b->c 이케 돌림.
스캐줄링 fifo방긋 -46
first in first out
우선순위가 같은놈들이야 타임슬라이스가 지나도 계속되는데? 끝날때까지 먼저 들어온놈이 실행되는데슝 그러다가 슬립들어가면(blocked 상태가되면) 같은 등급의 뒷놈이 들어옴 뒷놈이 들어와서 프로세스 넘겨줘야지 일할수 있엉
intrrupt scheduling -47
스레드라인이우선순이가 잇고 isr도 우선순위가 있어서 isr이 낮은놈이 돌다가 높은놈이 들어오면 자리 내줍니다.
그러다가 isr이 다돌면 thread로 돌아와서 돌게됩니다.
인터럽트 우선순위 없이 설정되어있을경우 -48
intrrupt가 웃너순위가 없을경우는 그냥 빨리온놈이 먼저 가는거야
어뎁티브 파티셔닝 -50 -51
이건 cpu 사용량을 파티셔닝 해주는거야
virtual partition을 줘서 파티션을 a 25% ,b 50% ,c 25 % 이렇게 줘놓고
님 프로세스를 원하는 파티션에 넣어줍니다.
프로세스 파티션이 안되있고 한놈에게 우선순위 높게잡고 fifo로 하면 다른놈은 일못하는겨
c가 놀고앉아있어 a는 겁나 바뻐.. 그럼 a가 c를 가져다 쓰게됩니다. 만약에 a가 일생겨 그렴 25프로 줍니다.
멀티코아~~ 도 시스템 전체를 100%로 보고 나운다.
멀티코어 - 53
멀티코어 스케줄링 하는건데 어떤쓰레드는 한놈만 조지는게 좋을수 있지 왔다갔다하면 더 버든이 생기는데 이럴때 지정해서 쓴다.
리소스 매니저 -55
물리적인거 제외하고 가상의 s/w 적인것도 포함합니다.
파일 입출력으로 합니다. io로 합니다. read write, open close, ioctl
pathname로 하는겨.
디바이스 드라이버를 보면 아시메 마지막에 알려준다
시스템 라이브러리 -60
posix standard 라이브러리 써주세요 괜히 hw에 직접억세스 되는거 쓰는건 별루지
read는 api를 쓰고시프면 파일시스템이 불러지고 파일시스템은 파일드라이버가 열령 혹은 미디어 여기서 실행되는 ipc는 메세지가 날라가네//? 펄스? 문서는 메세지인데 말하는건 펄스네 뭐가 맞는거야? ... 둘다 적용되나보넨 몰러..
마이크로 커널 구조라 이렇습니다.
shared objects는
shared, static, dll방식 다지원한다네...
os service -67
서비스 많이있다 가서 책에서 확인해라
display ui and screen -69
쓰는건4가지 있다고함 qnx multimedia renderer, html5 , opengl es, qt,
이건 screen이란 서비스에서 해준다고하네
여러 인풋도 받는다고하네?
qnx는 POSIX base입니다. -4
전통적인 real time executive -5
전통적인 monolithic kernerl os는 -6
qnx neutriono os -7-8
qnx 프로세스의 예는 뭘까? - 9
마이크로 커널 장점을 뭘까? -10
마이크로 커널 단점은 뭘까 -10
qnx의 프로세스 -11
쓰레드가 무엇인가! -12
프로세스랑 스레드는 뭔차야 -14
커널은 왜 중요한가. -16
시스템의 핵심은 커널이다.-17
커널 콜-18 19 20
커널 콜 장단이뭐여 -21
큐엔엑스는 뭔기능이있을까 -22
ipc -23
메세지 -24
펄스 -25
시그널 -26
스레드 -27
멀티스레드 싱크로나이즈 -28
타임 기능 -29
인터럽트 -30
커널 정리 해볼까 -31
프로세스 메니졍-33
프로세스 매니저는 뭐함? -34
프로세스 매니저가 메모리 관리 어케함? -35 36
버추얼 피지컬 메모리 영역 -37
path name -38
스케줄링 -41
Priority -42
priority - 43
priority -44
priority 스캐줄링 알고리듬 -45
스캐줄링 fifo방긋 -46
intrrupt scheduling -47
인터럽트 우선순위 없이 설정되어있을경우 -48
어뎁티브 파티셔닝 -50 -51
멀티코어 - 53
리소스 매니저 -55
시스템 라이브러리 -60
shared objects는
os service -67
display ui and screen -69