Tag: os

0

17. 멀티레벨 큐 스케줄러로 업그레이드하고 태스크 종료 기능을 추가하자

들어가기태스크에 우선순위를 할당하고 이에 따라 태스크를 실행하는 빈도를 조절. 본론17.1 태스크 우선순위와 멀티레벨 큐 스케줄러 알고리즘17.1.1 멀티레벨 큐 스케줄러와 라운드 로빈 스케줄러의 관계 멀티레벨 큐 스케줄러는 우선순위에 따라 구분된 여러 개의 큐를 사용. 태스크가 대기하는 공간이 여러 개이므로, 멀티레벨 큐 스케줄러에는 두 가지 스케줄링 정

0

16. 라운드 로빈 스케줄러를 추가하자

들어가기라운드 로빈 스케줄러를 구현하는 방법에 대해 알아보자. 본론16.1 스케줄러와 리스트16.1.1 스케줄러의 역할과 종류 스케줄러는 태스크를 특정 기준에 따라 정렬하여 실행 순서를 결정. 프로세서의 사용률을 높이고 성능을 향상시킬 수 있음. 일정한 시간마다 돌아가면서 공평하게 실행하는 라운드 로빈 방식. 태스크가 많아지면 프로세서를 할당 받을때 까지

0

15. 태스크 개념을 추가해 멀티태스킹을 구현하자

들어가기멀티태스킹 기능을 구현하면서 멀티태스킹이 무엇인지 알고 함수를 작성하자. 본론15.1 태스크, 멀티태스킹, 성능 향상15.1.1 태스크, 콘텍스트, 스택 태스크마다 개별적인 콘텍스트만 보장한다면 여러 개의 태스크를 동시에 실행해도 서로 간섭 없이 처리. 독립적인 콘텍스트를 보장한다 해도 스택이 구분되지 않으면 다른 태스크로 인해 스택의 내용이 변경되

0

14. 타이머 디바이스 드라이버를 추가하자

들어가기PIT 컨트롤러 제어, 타임 스탬프 카운터와 RTC 통해 정밀하게 시간 측정하는 방법에 대해 알아보자. 본론14.1 디바이스의 특징과 쓰임 타이머 디바이스(PIT)는 PIC의 IRQ 0에 연결, 한 번 또는 일정한 주기로 인터럽트를 발생시킴. 타임 스탬프 카운터는 프로세서 내부에서 클록을 기준으로 카운터가 증가, 클록의 주기가 빨라서 정밀한 시간

0

13. 콘솔 셸을 만들자

들어가기셸을 구현하는데 필요한 콘솔 라이브러리를 구현하고 콘솔 라이브러리를 구성하는 함수를 구현하는데 필요한 가변 인자 처리 방법. 본론13.1 sprintf()와 가변 인자 처리13.1.1 포맷 스트링과 가변 인자// 가변 인자 예시 printf("%s", "test") 포맷 스트링에는 함수의 파라미터가 가변적이라는 전제가 포함. 함수를 호출하는 쪽에

0

12. 키보드 디바이스 드라이버를 업그레이드하자

들어가기데이터를 전달하는 큐를 구현해 인터럽트 핸들러에서 셸 코드로 키 정보를 전달. 본론12.1 인터럽트 핸들러와 큐12.1.1 인터럽트 핸들러와 어떻게 통신할까? 인터럽트 핸들러는 디바이스에서 읽은 데이터를 버퍼에 저장하고, 프로그램은 버퍼를 확인하여 이를 처리. 12.1.2 큐란 무엇인가? FIFO 구조의 자료구조. 12.1.3 범용 큐 설계 범용