2015-12-02
*ARM Assembly
#임베디드 메모리 구조
RO(Read Only)
.text : 코드
.constdata : 상수
RW
.data : 초기값이 0이 아닌 static이나 전역변수
ZI
.bss : 초기값이 0인 static이나 전역변수
#ELF와 ELF 헤더의 구조
- Executable and Linking Format을 의미한다.
- 실행 가능한 그리고 링크를 하는 형식을 말한다.
relocatable file
- 최종 실행 가능한 file이 아니라, link 가능한 object file이다.
- 나중에 link를 통해서 재배치가 가능하다.
- Assembler에 통과하여, link 가능하게 table 형태로 만들어 놓은 것이다.
ELF format Object file
- Assembler의 output이다.
- armcc와 cl의 object파일 내용.
*WinSock
#멀티쓰레드
기본 개념
멀티스레딩(Multithreading) 컴퓨터는 여러 개의 스레드를 효과적으로 실행할 수 있는 하드웨어 지원을 갖추고 있다. 이는 스레드가 모두 같은 주소 공간에서 동작하여 하나의 CPU 캐시 공유 집합과 하나의 변환 색인 버퍼(TLB)만 있는 멀티프로세서 시스템 (멀티 코어 시스템)과는 구별한다. 그러므로 멀티스레딩은 프로그램 안에서 병렬 처리의 이점을 맛볼 수 있지만 멀티프로세싱 시스템은 여러 개의 프로그램들을 병렬로 처리할 수 있다. 멀티프로세싱 시스템이 여러 개의 완전한 처리 장치들을 포함하는 반면 멀티스레딩은 스레드 수준뿐 아니라 명령어 수준의 병렬 처리에까지 신경을 쓰면서 하나의 코어에 대한 이용성을 증가하는 것에 초점을 두고 있다.
장점
1) 응답성 : 대화형 프로그램을 멀티스레드화하면, 프로그램의 일부분(스레드)이 중단되거나 긴 작업을 수행하더라도 프로그램의 수행이 계속되어, 사용자에 대한 응답성이 증가된다. 예를 들어, 멀티스레드가 적용된 웹 브라우저프로그램에서 하나의 스레드가 이미지 파일을 로드하고 있는 동안, 다른 스레드에 사용자와의 상호 작용이 가능하다.
2) 자원 공유 : 스레드는 자동적으로 그들이 속한 프로세스의 자원들과 메모리를 공유한다. 코드 공유의 이점은, 한 응용 프로그램이 같은 주소 공간 내에 여러 개의 다른 활동성 스레드를 가질 수 있다는 점이다.
3) 경제성 : 프로세스 생성에 메모리와 자원을 할당하는 것은 비용이 많이 든다. 스레드는 자신이 속한 프로세스의 자원들을 공유하기 때문에, 스레드를 생성하고 문맥교환을 하는 편이 보다 경제적이다. 멀티프로세서 활용 : 멀티프로세서 구조에서는 각각의 스레드가 다른 프로세서에서 병렬로 수행될 수 있다. 단일스레드 프로세스는 CPU가 많아도 CPU 한개에서만 실행된다. 즉, 다중 스레드화를 하면 다중 CPU에서 병렬성이증가된다.
단점
다중 스레드는 캐시나 변환 색인 버퍼(TLB)와 같은 하드웨어 리소스를 공유할 때 서로를 간섭할 수 있다. 하나의 스레드만 실행 중인 경우 싱글 스레드의 실행 시간이 개선되지 않고 오히려 지연될 수 있다. 멀티스레딩의 하드웨어 지원을 위해 응용 프로그램과 운영 체제 둘 다 충분한 변화가 필요하다. 스레드 스케줄링은 멀티스레딩의 주요 문제이기도 하다.
'코스웨어 > 15년 스마트컨트롤러' 카테고리의 다른 글
20151207 일일업무보고서_박서연_LinuxSerial통신 (6) | 2015.12.07 |
---|---|
20151207 - 엄민웅 시리얼 통신 Canonical, Non-Canonical, Asynchronous, Multi Flexing (4) | 2015.12.07 |
20151207-김재홍-Serial_1일차-리눅스시리얼통신 (5) | 2015.12.07 |
20151202 22번 우대희 업무일지 (7) | 2015.12.03 |
20151202 김태현 개인업무일지 (5) | 2015.12.03 |
20151202_[안향진]_ARM어셈블리_4__WINSOCK_3 (6) | 2015.12.03 |
20151202 임현수 업무일지 ELF파일 포맷, 스레드 (4) | 2015.12.03 |
20151202 강동조 개인업무일지 (5) | 2015.12.02 |