인터럽트 (Interrupt) & 시스템 콜
·
Computer Science/운영체제
인터럽트 (Interrupt)프로그램을 실행하는 도중 예기치 못한 상황이 발생할 경우CPU가 현재 수행 중인 작업을 일시 중단하고, 다른 작업을 수행하도록 하는 메커니즘구조하드웨어 장치마다 `컨트롤러`라고 불리는 작은 CPU 존재컨트롤러는 장치로부터 출입하는 데이터를 임시로 저장하기 위한 `Local Buffer`라는 `작은 메모리`를 가짐ex) 디스크 = 디스크 컨트롤러 / 메모리= 메모리 컨트롤러개념가정 : 디스크에서 데이터를 읽어오는 작업 中디스크 컨트롤러가 디스크에서 내용을 읽어 로컬 버퍼에 저장.저장하는 작업의 완료 여부는 CPU가 체크하는 것이 아닌, 장치의 컨트롤러가 인터럽트 신호 발생하여 CPU에게 전달 📌 컨트롤러들이 CPU의 서비스가 필요할 때 이를 통보하는 방법 = 인터럽트기본적으로..
CPU 스케줄링
·
Computer Science/운영체제
개요워크로드에 대한 가정일련의 프로세스들이 실행되는 상황 (워크로드) 가정모든 작업은 같은 시간 동안 실행됨모든 작업은 동시에 도착함각 작업은 시작되면 완료될 때까지 실행모든 작업은 CPU만 사용 (= I/O 수행 X)각 작업의 실행 시간은 사전에 알려짐스케줄링 평가 항목 (scheduling metric)-  반환 시간 (turnaround time)작업이 `완료`된 시각에서 작업이 시스템에 `도착`한 시간을 뺀 시간으로 정의위 가정에서 모든 작업은 동시에 도착한다고 가정했으므로, `arrival = 0`∴ 작업 반환 시간 = 작업 완료 시각📌 반환 시간은 성능 측면에서의 평가 기준다른 평가 기준으로는 `공정성`(Fairness)이 있음.성능과 공정성은 스케줄링에서 상충되는 목표임성능 vs 공정성CP..
10986. 나머지 합
·
PS/Baekjoon
📜 문제 설명N개의 숫자가 주어질 때, 연속된 부분 구간 합이 M으로 나누어 떨어지는 구간의 개수배열 [1, 2, 3, 1, 2]에서 3으로 나누어 떨어지는 구간?👉 [1, 2], [1, 2, 3], [3], [2, 3, 1], [3, 1, 2], [1, 2] = `7개`N: 숫자 개수 (N ≤ 백만)M: 나누는 수 (M A₁ 숫자가 백만 개까지 주어질 수 있어서 `O(NLogN) 이하`의 시간 복잡도로 풀어야 시간 초과가 나지 않는다.부분 구간의 개수를 구해야 하므로 계산 할 때마다 합을 구해 나가는 게 아닌, `누적합`을 이용해 풀어야 한다.M으로 나누어 떨어지는, 즉 M으로 나눈 나머지가 0인 구간을 구하려면 `(A+B) % M == 0` 수식으로 풀면 된다.📌 나머지 연산(A+B)%C 는 {..
메모리 & 메모리 관리
·
Computer Science/운영체제
메모리 계층메모리 계층은 레지스터, 캐시 메모리, RAM, 저장장치로 구성이름설명휘발 여부레지스터CPU 내의 작은 메모리O캐시L1,L2 캐시 지칭, L3 캐시도 있음O주기억장치RAM 의미O저장장치HDD/SSDX이러한 계층이 있는 이유는 `경제성`과 `캐시` 때문임.경제성: 16GM 램 VS 1TB HDD = HDD가 더 쌈 (속도 ∝ 돈)대략 적인 속도 차이 ❓L1 캐시: 약 1ns 이하 (나노초)L2 캐시: 약 3~10nsL3 캐시: 약 10~30nsRAM (DDR4/DDR5): 약 50~100nsSSD (NVMe 기준): 약 100,000ns (100µs)HDD: 약 5,000,000ns (5ms)ex) L3 캐시가 RAM 보다 10배~30배 빠름 캐시 (Cache)데이터를 미리 복사해 놓는 임시 저..
[단일 파일 컴포넌트-2] 컴포넌트의 조합
·
카테고리 없음
이전 글 2025.03.31 - [Frontend/Vue 3] - [단일 파일 컴포넌트-1] 프로젝트 설정컴포넌트의 조합복잡한 화면의 Vue 애플리케이션은 여러 컴포넌트 조합하여 개발부모-자식 관계로 `트리 구조` 형성여러 컴포넌트를 조합하면, 컴포넌트 간의 정보 전달 必∴ `속성`과 `이벤트`를 이용함속성1) 속성을 이용한 정보 전달부모 컴포넌트 → 자식 컴포넌트로 정보 전달하는 방법자식 컴포넌트는 `props` 옵션으로 속성 정의부모 컴포넌트는 `v-bind`를 이용해 자식 컴포넌트의 속성에 정보 전달📌 속성으로 전달 받은 데이터 변경X = 읽기 전용부모에서 속성 값 변경 👉 자식은 자동으로 다시 렌더링부모 컴포넌트: App.vue자식 컴포넌트: TodoList.vueApp 컴포넌트에서 data ..
[단일 파일 컴포넌트-1] 프로젝트 설정
·
Frontend/Vue 3
단일 파일 컴포넌트 (Single File Component)컴포넌트 하나를 `.vue` 파일 하나에 작성하기 때문에 붙여진 이름한 파일 내에 템플릿, 스크립트, 스타일 정보를 모두 포함 → 컴포넌트 단위로 관심사 분리📌 단일 컴포넌트 기반으로 Vue 애플리케이션을 개발하려면,모듈 번들러 도구와 트랜스파일러를 함께 사용하도록 환경을 설정해야 함 👉 프로젝트 도구 사용 권장번들링 ❓여러 모듈을 묶어서 하나 또는 몇 개의 모듈 파일로 만드는 과정 (webpack, vite etc..)프로젝트 설정 도구1) Vue CLI 도구`Webpack` 기반의 Vue 프로젝트 공식 설정 도구였음.하지만, 이 도구를 사용해 개발용 서버를 구동할 때까지 꽤나 긴 시간이 걸림왜❓webpack 기능은 관련된 모듈들이 덩치가..
Composition API
·
Frontend/Vue 3
Options API vs Composition APIOptions API 방식이전까지 컴포넌트 작성 방법 (= 옵션 API (Option API))data, methods, computed, watch와 같은 `옵션`들을 작성컴포넌트 연산(`calc`) 기능과 이름(`name`)을 처리하는 두 가지 기능을 가진 컴포넌트연산과 관련된 기능이 여러 옵션에 흩어져 있음여러 기능을 가진 컴포넌트의 경우, 매우 복잡한 코드를 분석하기에는 불편한 방식Composition API 방식대규모 vue 애플리케이션에서 컴포넌트의 로직을 효과적으로 구성 & 재사용할 수 있도록 만든 함수 기반 API위 Option API를 사용한 컴포넌트 방식과 달리 데이터, 메서드, 생명주기 메서드들이 관심 기능 별로 묶여있음👉 특정 ..
[컴포넌트 심화-5] 텔레포트, 동적 컴포넌트 &비동기 컴포넌트
·
Frontend/Vue 3
동적 컴포넌트  (Dynamic Components)`` 태그와 `is` 속성을 사용해 동적으로 컴포넌트를 변경할 수 있는 기능 제공즉, 컴포넌트를 고정적으로 렌더링하는 것이 아니라, 상황에 따라 변경 가능기본 문법 `:is` 속성에는 렌더링할 컴포넌트의 이름을 전달`currentComponent` 값이 변경되면 자동으로 새로운 컴포넌트로 교체예제`ComponentA`와 `ComponentB`를 동적으로 변경하는 예제 컴포넌트 변경  keep-alive로 상태 유지동적 컴포넌트를 변경할 경우, 기존 컴포넌트의 상태가 초기화 됨👉 A에서 이름을 입력 중 B로 이동시, 다시 A로 돌아왔을 때 작성한 이름이 초기화 돼 있음 위처럼 ``를 사용해서 한 번 로드된 컴포넌트의 상태를 유지하면 ..