DEVELOP
[임베디드시스템소프트웨어] 05. General Purpose I/O

임베디드시스템소프트웨어 과목의 강의영상과 강의자료를 바탕으로 작성한 학습용 게시글입니다. GPIO (General Purpose Input/Output ) 특정 PIN에 연결된 비트를 나타낸다. 0또는1의 1bit를 표현할 수 있다. (0은 0V, 1은 3.3V를 뜻한다.) GPIO Pin을 통해서 한 쪽에서는 1bit짜리의 데이터를 보내고, 다른 한 쪽에서는 1bit짜리의 데이터를 읽어온다. GPIO의 사용 센서나 액추에이터를 연결하고 센서나 액추에이터에 특정 정보를 보내거나 읽어들일 때 사용한다. 각 PIN은 1bit를 나타낸다. Pin 하나로만 다양한 센서와 액추에이터를 연결하기는 어렵다. -> 보통 Pin을 다발로 묶어서 여러 개의 핀을 집합적으로 사용한다. (I^2C) GPIO Pin은 inpu..

[임베디드시스템소프트웨어] 04. Blocking I/O

임베디드 시스템 소프트웨어 과목의 강의영상과 강의자료를 바탕으로 작성한 학습용 게시글입니다. Possible Semantics of I/O Interfaces Blocking I/O write() , read() 시스템 콜을 쓸 때 동작하는 방식이다. I/O를 당장 할 수 없을 때는 해당 system call을 호출한 프로세스를 blocking state로 전이하고, CPU 자원을 쓰지 않고 대기한다. I/O 완전히 끝났을 때만 해당 system call을 리턴한다. receive 요청 받지 못하면 blocking한다. send할 때 버퍼 꽉 차는 경우는 데이터 넣을 수 없으므로 blocking한다. Nonblocking I/O blocking하지 않는다. blocking이 필요하면 오류값 리턴 후 진행..

[임베디드시스템소프트웨어] 03. Basic Kernel Functions

임베디드 시스템 소프트웨어 과목의 강의영상과 강의자료를 바탕으로 작성한 학습용 게시글입니다. Exported Kernel Functions 마치 라이브러리처럼 가져다 쓸 수 있는 함수들 Exported Kernel Symbols /proc/kallsyms 에서 확인 가능 EXPORT_SYMBOL() 또는 EXPORT_SYMBOL_GPL() 로 export 가능 insmod해서 커널이 삽입될 때 symbol들이 resolve된다. insmod할 때 linking이 되는 것과 같은 원리이다. 예시 printk() : 로그레벨 주의, 너무 자주 출력되는 것 주의 alloc_chrdev_region() : major num 얻기 cdev_alloc() : cdev 구조체 할당 cdev_init() : cdev ..

[임베디드시스템소프트웨어] 02. Character Device Drivers (캐릭터 디바이스 드라이버)

임베디드 시스템 소프트웨어 과목의 강의영상과 강의자료를 바탕으로 작성한 학습용 게시글입니다. Linux Device Drivers Device Driver Network Device Driver 네트워크 프로토콜 스택과 상호 작용 소켓 인터페이스 ex) 이더넷 드라이버 Block Device Driver 랜덤 엑세스 장치 open, close, read, write 시스템 콜 파일에 불특정한 위치로 포인터를 옮김 ex) 스토리지 드라이버 Character Device Driver sequential access device (순차적 엑세스 장치) : 바이트 스트림으로 엑세스 block device driver와 동일한 인터페이스(open, close, read, write) 랜덤 access 불가 어떤 ..

[임베디드시스템소프트웨어] 01. Loadable Kernel Modules (적재 가능 커널 모듈)

임베디드 시스템 소프트웨어 과목의 강의영상과 강의자료를 바탕으로 작성한 학습용 게시글입니다. Background (배경) Operating Systems vs. Kernel ( OS와 커널의 비교 ) 보통은 OS = 커널이라고 생각하기 쉬움 OS는 리눅스 커널 기반의 소프트에어 집합체로 만들어진다. OS는 Linux Kernel (OS의 핵심) , GCC 등의 GNU 툴과 라이브러리, GUI를 통해 시스템을 관리할 수 있는 윈도우 시스템, 데스크톱 환경 등을 포함한다. 따라서, OS 안에 커널이 포함된다고 할 수 있다. 일반적으로, 디바이스 드라이버는 커널 안에 포함되지 않고, OS 안에 포함된다. 배포 시 대표적인 디바이스 드라이버를 포함한다. 타입의 종류에 따른 커널의 분류 Monolithic Ker..

article thumbnail
[운영체제] 10. 디스크와 RAID 경영
LECTURE/[2021-1] 운영체제 2021. 6. 17. 07:08

본 게시물은 운영체제 과목의 강의영상과 강의자료를 바탕으로 작성한 학습용 게시물입니다. 디스크 스핀들, 플래터, 섹터, 트랙, 실린더 한 트랙의 섹터 수는 동일 헤드를 움직여 특정 트랙의 특정 섹터를 찾아 읽기 혹은 쓰기 작업 이러한 움직임은 물리적 움직임을 포함하고 있기 때문에 매우 효율적으로 이루어져야 함 섹터 접근의 3가지 시간지연요소 - 탐색시간, 회전지연시간, 전송시간 디스크 스케쥴링 디스크 스케쥴링 - 어느 프로세스의 요청을 먼저 선택하여 실행할 것인지 순서를 결정하는 것 - 목적 : 처리율 극대화 -> 평균 반응시간 줄이기, 반응시간 분산 줄이기 FCFS 스케쥴링 : 먼저 도착한 요청이 우선적으로 서비스 받음 SSTF (Shortest Seek Time First) : 탐색 거리가 가장 짧은..

[운영체제] 9. 파일 시스템 (File Systems)
LECTURE/[2021-1] 운영체제 2021. 6. 17. 06:50

본 게시물은 운영체제 과목의 강의영상과 강의자료를 바탕으로 작성한 학습용 게시물입니다. 파일과 파일 시스템 # 파일의 개념 파일 : 정보의 집합체 보통 보조기억 장치 속에 저장되어 있고, 주로 프로그램 파일 또는 데이터 파일 하나의 파일은 디스크 내 여러 개의 섹터로 구성 가상메모리 : 오브젝트 파일을 프로세스와 연관시키기 위한 추상화 장치 파일 : 모든 입축력 장치를 파일이라는 개념으로 일관성 있게 추상화 추상화 실현을 위해 파일 시스템 존재 # 파일시스템 저장장치는 선형적인 주소를 가진 바이트의 블록만을 저장 파일 시스템은 저장장치와 응용프로그램 간의 자료구조 차이점을 해결 - Stream-block Translation : 기억장치의 블록을 음수가 아닌 정수 값을 갖는 연속된 주소를 가진 바이트의 ..

[운영체제] 8. 가상메모리 (Virtual Memory)
LECTURE/[2021-1] 운영체제 2021. 6. 17. 06:26

본 게시물은 운영체제 과목의 강의영상과 강의자료를 바탕으로 작성한 학습용 게시물입니다. 가상메모리 물리메모리에 일부의 페이지만 적재 (부분적재) 적재 여부를 페이지테이블에 표시 vaild-invaild bit : 탑재되는 페이지만 유효 표시 dirty bit : 페이지 적재 후 변경 유무 표시 요구 페이징 및 부분적재의 타당성 요구 페이징 : 페이지 부재가 발생하면 그때 트랩을 걸어 해당 페이지 탑재 페이지 부재 : 현재 탑재되지 않은 페이지가 발생 참조의 지역성 : 프로그램의 어느 한 특정 작은 부분만 한동안 집중적으로 참조하는 현상 프로그램 부분 적재 - 프로그램 구동 시 보통 전체보다 일부를 필요로 함 - 프로그램 크기가 물리적인 용량에 무관 - 처리율 향상 - 페이지 부재를 낮추어 성능을 높이는 ..

article thumbnail
[운영체제] 7. 메모리 경영
LECTURE/[2021-1] 운영체제 2021. 6. 17. 05:45

본 게시물은 운영체제 과목의 강의영상과 강의자료를 바탕으로 작성한 학습용 게시물입니다. 개요 - 논리주소와 물리주소, 주소 결속 논리주소 : CPU에 의해서 생성되는 주소 체계 물리주소 : RAM에 실질적으로 로드되는 물리적주소 주소결속 : 논리주소 → 물리주소 명령어 하나가 실행될 때마다 주소변환이 이루어짐 주소결속은 한번에 이루어지지 않고 하드웨어의 지원을 받아 실행시간에 이루어짐 # 주소결속 시점 컴파일시점 결속 - 컴파일러가 물리주소를 생성 적재시점 결속 - 적재 시점에 물리적 시작주소가 확정되면 코드 내 논리주소들을 물리적 주소로 변환하여 적재 실행시점 결속 - 먼저 논리주소로 적재된 후 실행 중에 물리주소 확정 적재시점 주소결속 시에는 적재 후 재배치가 불가 실행시점 주소결속 시에는 재배치 및..

[운영체제] 6. 교착 상태 (Deadlock)
LECTURE/[2021-1] 운영체제 2021. 6. 17. 05:22

본 게시물은 운영체제 과목의 강의영상과 강의자료를 바탕으로 작성한 학습용 게시물입니다. 교착상태 문제 # 교착상태 한 프로세스가 자원을 요청하였으나, 그 자원을 필요로 하는 시간에 사용할 수 없다면 대기 상태로 진입하고, 그 필요 자원이 또 다른 자원의 할당을 위해 대기 중인 다른 프로세스에 의해 점유되어 있고 이런 형태의 대기가 꼬리에 꼬리를 물어 환형을 이루게 되면, 대기에 참여한 프로세스들은 영원히 대기 상태에서 벗어날 수 없다. → 교착 상태 발생 교착상태 특징 다음의 4가지 조건이 동시에 만족될 때 교착상태 발생 1. 상호 배제 : 할당 후 반환까지 한 프로세스만 사용하는 자원이어야 함 2. 점유하며 대기 : 적어도 각 프로세스가 하나의 자원을 보유하고 현재 다른 프로세스에게 점유된 자원을 추가..