본문 바로가기

반응형

VEDA 복습

(35)
VEDA 41일차 - POSIX 스레드, 스레드 동기화 1. C => HW(embedded) 1. firmware(= startup + main() ) 2. bootloader + RTos { = os + app } 3. u-boot + os(kernel) + drivers + (middleware) + apps 2. embedded system comprehension PC ====> BOARD (PC와 다르게 보드에서의 개발은 환경이 다르다!) 3. embedded c on bard. => "volatile" => "pointer --> devices(SFR)", "restrict" => bit operations 4. Datastructure and Algorithm : 실제로도 중요 + 코딩테스트 6. RTo..
VEDA 40일차 - 리눅스 프로그래밍(프로세스 간 통신) 세미나개발자가 일하는 법 : documentation이 중요함 = 정말 세세하게 기록하면 기록할 수록 좋음(남 좋은 것 뿐만 아니라 나의 책임 소재를 피할 수 있다.), documnetation을 자동화할 수 있으면 자동화해라(단 보안 정책을 고려해야 한다.) 별 거 없다. => 딥하게 파봐라!! 동기화두 개 이상의 프로세스가 동일한 자원에 접근할 때 잘못된 연산을 없애고 일관성을 유지배타적인 사용순차적인 사용동기화 객체 : semaphore, mutex, rwsem, rwmutex, completion 이름이 없는 경우와 이름이 있는 경우 : 전자는 부모-자식 프로세스 간 통신, 후자는 제한이 없음우선순위 역전 현상 방지 : 우선순위 상속, priority ceiling(우선순위를 아예 올려주는 것) ..
VEDA 38일차 ~ 39일차 - 연구 세미나 WiseAI : 한화 비전에서 자체적으로 개발한 프로그램예전에는 어려웠지만 요즘에는 프로그램을 넣어두면 CV2(Ambarella)이 학습을 수행한다.임베디드 쪽은 다소 트랜드를 따라가는 게 느리다. 임베디드 분야도 웹과 합쳐지는 것이 트랜드이다!처음부터 다 짜라고는 하지 않는다. 반드시 비교군, 대조군을 주고, 레퍼런싱해서 빨리 빨리 일하게 한다.보안에 대한 생각을 반드시 해야한다. 별의별 일들이 일어난다. (ex) 디버깅 기능을 클라이언트에게 사용하게 한다면 반드시 제한을 두어야 한다!!)다른 회사와 협업을 할 때는 수준 있는 질문을 해야한다. 그래야지 컨택이 온다! 실습한 내용에 대해서는 올리지는 못할 것 같다. 실제 판매되는 제품을 사용하였고 자료 대부분이 회사 기밀로 취급되었다. 공부할 때 사용하..
VEDA 37일차 - 멀티 프로세스와 다중 프로그래밍 다중 프로그래밍1. process fork() -> create new PCB2. thread = light weight process leader thread(main) => thread1, thread2, ... (parent, child 관계와 유사) create : 생성 join : wait()과 유사한 역할 exit : 단순 return과는 차이점이 있다. 스레드의 속성도 당연히 설정할 수 있다.pthread_attr_init()속성 객체 초기화 (기본값으로 설정)전체스레드 속성 사용 전 반드시 호출 필요pthread_attr_destroy()속성 객체 메모리 해제전체속성 사용 후 정리 필요pthread_attr_setdetachstate()스레드의 detach 상..
VEDA 36일차 - 프로세스와 시그널 프로세스 : 메모리 상에 올라간 프로그램active process : 실행 중인 프로세스passive process : 디스크에서 아직 실행 중이지 않은 프로그램유저 영역과 커널 영역에서 동작한다. 리눅스 프로세스의 상태생성(new) : 프로세스가 생성됨 준비(ready) : CPU의 할당을 기달기고 있는 상태 실행(execute) : CPU에 할당되어 실행되고 있는 상태, 커널에게 시스템을 수행하게 할 수 있음 대기(sleeping) : 커널에 시스템 호출을 처리하기 위해 기다리는 상태 종료(terminated) : 프로세스 실행이 완료된 상태 멀티 프로세서와 다중 프로그래밍BIOS(ROM) => 부트로더(MBR, GRUB) => kernel의 실행 및 시스템 초기화 fork() : 부모 프로세스가 자..
VEDA 35일차 - 임베디드 리눅스 프로그래밍 시스템 콜callback 함수 : 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 의미프로그램 영역 내에서 수행되는가, 아니면 커널 영역에서 수행하는 가 => 스택은 공유하지만, 프로그램을 읽어오는 공간이 다르다!!파일 디스크립터로 관리, 시스템 콜은 일종의 인터럽트이다!! (밑의 블로그 참조)https://hasensprung.tistory.com/176 [운영체제] System Call(시스템콜)을 파보자!📣 해당 포스트는 운영체제 공룡책과 고건 교수님의 OLC 강의 등을 참고하여 작성되었습니다. 시스템콜을 한마디로 정리하면 커널에 접근하기 위한 인터페이스입니다. 하지만 시스템콜이 이 한hasensprung.tistory.com SWI 명령어 : 권한 변경 => 기존의 제한되었던 소프트웨어적인 접..
VEDA 34일차 - 임베디드 리눅스 프로그래밍(라즈베리파이) 라즈베리파이 4 세팅1) 라즈베리 공식 사이트에 들어가서 installer 다운로드2) PC에 SD 카드를 연결한 후, installer 관리자 모드로 실행3) 라즈베리파이 모델에 맞추어 OS 선택(라즈베리파이4-64bit-SD 카드)4) 필요한 경우 OS 상세 설정5) SD 카드에 OS 마운트 후 라즈베리 파이에 연결하여 확인(키보드, 마우스 , 모니터 연결 필요)6) 네트워크에 연결할 필요가 있음(그래야지 나중에 원격으로 연결 가능), ip 주소 확인7) sudo raspi-config 터미널에 입력 후, interface option -> ssh enable할 것(필수!)8) ssh 등 본 PC의 쉘을 이용하여 접속하면 ok VI 에디터 사용법 => 직접 사용해보는 편이 좋음1. Vim 에디터 개요..
VEDA 교과평가2 준비(리눅스, Make, CMake, Git etc) 리눅스(명령어 위주로 정리) 터미널 : 컴퓨터와 사용자 간에 상호작용할 수 있게 연결하는 장치Shell : 운영체제와 사용자 간 상호작용을 지원하는 소프트웨어 ex) BashShell Script : 셸에서 동작 가능한 명령어를 모아놓은 파일 #!/bin/bash : bin에 있는 bash를 쉘로 사용하겠다. (#!) 명령어manual : mansection # : 1(shell cmd), 2(system call), 3(lib function) ls : list ls -a : all file ls - l : including several characteristics(list) ls -t : from new file to old file sorting ls -R : recurs..

반응형