본문 바로가기

전체 글59

Process & Thread OverviewProcess란 실제 프로그램이 메모리에 loading되어 실행되는 작업을 의미하며, Thread는 프로세스 내에서 실행되는 흐름의 단위(Process의 subset)를 의미합니다. 따라서 기본적으로 하나의 프로세스는 최소 하나의 스레드(main thread)가 실행된다고 볼 수 있습니다. Process프로세스는 각각 자신만의 별도의 주소와 자원을 할당하여 사용(Code, Data, Heap, Stack영역)하나의 프로세스는 다른 프로세스의 메모리나 리소스에 접근 불가따라서 접근을 위해서는 IPC(Inter Process Communication) 통신을 사용하여 통신 Thread스레드는 하나의 프로세스 내에서 실행되므로 스레드 생성 시 Stack영역만 새로 할당 받으며 Code, Data.. 2024. 8. 9.
ARM Memory System Memory TypeARM architecture에서 memory는 크게 두 가지 type으로 분류 됨. Normal Memory일반적으로 data나 code가 load되어 처리되는 영역으로서 R/W나 RO로 동작ARM processor는 해당 영역에 대하여 cache 기법을 적용할 수 있음 또한 성능 향상이나 최적화를 위해 하기와 같은 기법을 사용할 수 있음. Merge access연속된 메모리 공간에 접근하는 2개 이상의 명령어를 한번에 처리. ex) 0xF000_0000. 0xF000_0004, 0xF000_0008의 연속된 메모리에 대해 4byte씩 접근하는 경우 3번의 access를 수행하여야 하는데, 이때 다수의 access를 merge하여 0xF000_0000으로 부터 한번의 transact.. 2024. 7. 30.
Python 기본 문법 정리(5) Class(모듈)Module(모듈)Module(모듈)이란 특정 기능을 위해 별도로 분류하여 작성한 데이터 및 함수로서 요소로서 이러한 모듈들이 모여 하나의 시스템, 프로그램을 구성함(라이브러리 개념)파이썬에서 모듈을 사용하기 위해서는 import 키워드를 통해 불러올 수 있음불러온 모듈 내의 클래스에 정의된 메소드(함수)를 사용하기위해서는 .. 형태로 호출해야 함# 기본적인 모듈 import 및 사용 방식import datetime''': datetime: datetime: now'''print(datetime.datetime.now()) 모듈의 특정부분만 import하기 위해서는 from / import 키워드를 사용하여 불러옴해당 키워드를 사용하여 import하는 경우 모듈 name을 생략할 수 있다.. 2024. 7. 17.
Python 기본 문법 정리(4) 프로그래밍을 하다보면 특정 기능을 수행하는 code를 반복적으로 사용하는 경우가 있는데, 이를 따로 묶어 재사용하기 위한 코드의 집합을 함수(function)이라고 한다. 기본구조파이썬에서 함수는 기본적으로 다음과 같은 구조를 가지고 있다.def 함수이름(매개변수1, 매개변수2...): """ 함수 내용 """ return return_value # 실제 함수 호출ret = 함수이름(인자1, 인자2...) 함수는 매개변수를 통해 입력 값인 인자를 전달하고, return을 통해 출력 값을 반환한다.함수의 기능에 따라 인자가 필요없거나, 반환 값이 필요없을 수 있다.# 입력이 없는 함수cnt = 1234def get_count(): global cnt return c.. 2024. 7. 17.
유용한 파이썬 package PIP(Python Install Package)를 통해 필요한 파이썬 패키지를 설치할 수 있다.이후 import를 통해 해당 패키지들을 import해 올 수 있다.pip install numpy # 데이터 분석 간 수치 계산에 유용한 패키지import numpy 유용하게 사용해본 패키지들은 다음과 같다.데이터 분석numpy, pandas, pytorch, tensorflow, keras시각화matplotlib, seaborn이미지 프로세싱opencvGUITkinter, PyQt5 ... 2024. 7. 17.
WFI / WFE 해당 ARM assembly instruction은 clock을 gate시켜 저전력 모드(low power state)로 진입하기 위한 명령어이다. WFI(Wait For Interrupt)standby mode로 진입하여, 인터럽트를 기다리고 있는 상태.인터럽트가 발생되면 wake up  WFE(Wait For Event)standby mode로 진입하여, 이벤트를 기다리고 있는 상태.이벤트가 발생되면 wake up(이벤트에 인터럽트가 포함되어 있음)이벤트는 주로 SEV or SEVL(Send EVent or Send EVent Local)라고 하는 명령을 통해 생성됨 주로 spinlock 상태에서 사용되며 계속 unlock을 기다리며 진입을 시도하기 보다는WFE를 통해 저전력 모드로 들어가있고, 다른.. 2024. 6. 27.
UART 정의 UART는 Universal Asynchronous Receiver/Transmitter(범용 비동기 송수신기)의 약자로서 두 device간 serial data를 교환할 때 사용하는 protocol을 의미함. Data Frame 단방향(Simplex) 통신, 반 이중(Half-duplex) 통신, 전 이중(Full-duplex) 통신을 지원하며, data는 frame 형태로 전송됨 RX: serial 형태의 data를 parallel하게 convesion TX: parallel 형태의 data를 serial하게 convesion Baud Rate RX / TX가 clk을 공유하지 않기 때문에 양측에 동일한 Baud Rate를 설정하므로서 데이터 전송 속도를 정함. 2024. 3. 5.
Xen Hypervisor Bare metal 구조(Type I)의 Hypervisor로서 기본적으로 반가상화를 통해 VMs은 Hypervisor Call을 통해 H/W resource에 대해 요청 함. Xen에는 Domain 0라고 하는 실제 device와 통신하는 driver가 있고, 각 도메인 Domain U(Unpriviledge)들을 관리하며 Dom u에 대한 요청을 처리 함. 동작에 대해 살펴보면 각 Dom U에서 H/W에 대한 요청을 Hypervisor Call을 통해 요청하면, Hypervisor는 Dom 0에게 전달하여 driver를 통해 실제 device에 접근 2024. 2. 23.
728x90