목록분류 전체보기 (50)
채록채록

Scheduling다음에 돌아갈 애를 선택하는 과정long-term schedulingjob schedulerdisk → memory할때 자원의 한계(memory overflow)로 인하여 다올릴수가 없을 때 어떤 프로세스만 memory에 올릴것인지short-term schedulingcpu schedulingready queue에 있는 애들 중 누구를 선택해서 cpu를 사용할 수 있게 할 것인지cpu burst : 하나의 process의 폭풍 연산ing하는 시간i/o burst : 하나의 process의 i/o요청하고 기다리는 시간synchronous : 하나의 작업이 끝나야 다음 작업이 시작된다.cpu-bound processcpu burst time > i/o burst time언제 끝나도 상관없을..

Heavy-weight인 processprocess는 많은 것들을 포함할 수 밖에 없다.address space(code, data), OS resources, accounting info, hardware execution state(PC, SP, registers…)새로운 process를 만드는 것은 비용이 많이 든다.all of data struction must be allocated and initializedmemory 많이 잡아먹는다.Inter Process Communication도 비싸다.OS를 통해서 가기 때문에 kernel 개입이 크다. (Shared memory, memory-queue 둘 다)overhead of system calls = cpu utilization이 떨어진다.그..

ProgramDisk에 저장되어있는 binary code 덩어리실행 가능한 파일아직 memory에는 올라가있지 않다.실행될 수 있지만 아직 실행되지 않은 상태will be executed by the kernel정적(static)Processprogram이 실행돼서 memory에 load된 상태by loader실행파일인 program이 bus를 타고 memory 구조에 맞게끔 올라간 상태basic unit of execution and schedulingprocess ID(PID)라는 고윳값을 가진다.table에 기록되어있다.동적(dynamic)cpu와 연결되어 변화를 주고받는 entity/instance(객체)encapsulation of the flow of control in a program문맥P..

abstract conceptshardware 위에 operating system, 그 위에 user and other system programsos 안에 user interfaces : gui, batch, clisystem calls : os위에서 동작하는 appliation이 hardware 자원을 쓸 수 있도록(=사용자의 요청을 수행할 수 있도록) 해주는 무언가를 interface로 만든 것os의 핵심 기능 kernel(service) : program execution(loader), i/o operations, file systems, communication, resource allocation, accounting, error detection, protection and security..

최종 목표STM32F407 보드의 **LD4 (GPIOD PIN 12)**에 연결된 LED를 0.19초 주기로 깜빡이기개발 환경 보드 STM32F407 Discovery (STM32F407VGTx MCU) 개발 툴 STM32CubeMX + STM32CubeIDE(&IAR EWARMS) 디버깅 도구 ST-LINK (JTAG/SWD) HAL 드라이버 STM32Cube HAL 기반 프로젝트 1. STM32CubeMX 구성STM32CubeMX의 역할1. 핀 설정 GUISTM32 칩의 모든 GPIO를 GUI 상에서 클릭만으로 설정할 수 있음예: PD12를 GPIO Output으로 설..

ComputerAbstract conceptServer Computer, Personal Computer, Embedded Computer최소 cpu, memory 하드웨어 위에 소프트웨어가 동작하는 모든 것Computer system organizationcomputer hardware 위 operating system : 하드웨어 자원의 전권을 가진 resource allocator, 그 위에 os가 제공하는 여러 system and application prograFmscpu, memory, i/o device가 i/o device controller와 bus로 연결되어 있다.bus 네트워크 인터페이스(Topology) : 한번에 한쌍만 통신cpu의 명령에 의해 모든 것이 수행된다.심플할수록 효율이..

백준 문제 풀다가 static을 컴파일러가 어떻게 처리하길래 전역 변수와 같은 영역의 메모리 데이터 세그먼트에 저장되는지 궁금해져서 지피티에게 물어본 내용을 정리하기.static vector> A;A를 Data영역(DATA+BSS)에 배치하여 한 번만 생성된다.특정 범위(함수, 파일, 클래스)에 한정되도록 관리한다. 변수 은닉 / 전역 네임스페이스 오염을 방지하기 위해 사용된다. 까지가 원래 알고있던 내용이라면...static 키워드는 컴파일러에게 해당 변수에 대해 duration과 linkage을 적용하라고 지시하는 컴파일 타임 정보이다. = 컴파일러와 링커가 협력해서 다른 메모리 영역에 배치하고 연결범위를 제어한다. 1. 컴파일 단계각 소스 파일을 .o(오브젝트 파일)로 컴파일할 때:변수/함수의 **..

저는 2024-여름학기부터 2024-2학기까지 현장실습을 진행하고, 2025-1학기는 자율적으로 회사와 계약을 맺어 연구를 진행했습니다.이번 현장실습을 통해 임베디드 시스템 개발의 전반적인 프로세스를 경험할 수 있었습니다. 특히 Qualcomm 플랫폼 기반의 레퍼런스보드에 Embedded Linux를 플래싱하여 루트파일시스템을 구성하고 여러 소프트웨어의 코딩을 하게 되었습니다. 사실 제가 근무했던 회사는 이제 제품을 개발하려고 하는 스타트업입니다. 또, 중국시장이 점령하고 있는 제조업 분야에서 독특하고 도전적인 제품을 실제로 제조하고자하는 판교의 메타버스 기업허브에 있는 스타트업입니다. 사실 그렇기 때문에 이게 정말 맞는 프로세스인지, 이게 맞는건지 하나하나 개척해 나가야하는 시간들을 아직 갖고있습니다...

기본인데도 자꾸 까먹어서 기록하는 것...template, class Compare = std::less> class priority_queue;prioriry_queue는 함수 타입을 받는게 아니라, 비교 객체의 타입을 템플릿 인자로 받는다. 그러므로 오름차순 정렬을 하고 싶으면 다음의 2개의 방법을 사용할 수 있다. 1. 구조체 + operator() 사용struct cmp { bool operator()(const pair& a, const pair& b) const { return a.second > b.second; }};priority_queue, vector>, cmp> pq; // OKcmp는 type이기 때문에 priority_queue 템플릿 인자로 넘길 수..

STM32F407G-DISC1 Demonstration Example sample을 통해 공부한 것... BSP_LED_Toggle() → HAL 라이브러리 함수 → 내부적으로 HAL_GPIO_TogglePin() 호출HAL_Delay(10) → SysTick_Handler()에 의해 작동되는 tick 기반 지연 함수 STM32CubeIDE에서 Debug 버튼을 눌렀을 때 내부 동작 흐름 1단계: 컴파일 (Build Phase) main.c, bsp.c, stm32f4xx_hal_gpio.c 등 C 파일이 .o 파일로 변환됨 (컴파일) STM32F407VGTx_FLASH.ld 링커 스크립트에 따라 .o 파일들이 .elf 바이너리로 링크됨 이 ELF 파일에는: 실제 실행될 명령어 변수..