[OS] 메모리 주소
1. 물리 주소, 논리 주소 메모리는 오직 주소로만 접근할 수 있음 1.1. 물리 주소(physical address) 하드웨어 관점 물리 메모리(RAM)에 매겨진 주소, 하드웨어에 의해 고정된 메모리 주소 0에서 시작하여 연속되는 주소 체계 메모리는 시스템 주소 버스를 통해 물리 주소의 신호 받음 1.2. 논리/가상 ...
1. 물리 주소, 논리 주소 메모리는 오직 주소로만 접근할 수 있음 1.1. 물리 주소(physical address) 하드웨어 관점 물리 메모리(RAM)에 매겨진 주소, 하드웨어에 의해 고정된 메모리 주소 0에서 시작하여 연속되는 주소 체계 메모리는 시스템 주소 버스를 통해 물리 주소의 신호 받음 1.2. 논리/가상 ...
1. 교착상태란? 자원을 소유한 채, 모두 상대방이 소유한 자원을 기다리면서 무한 대기 ex: 한 사람이 밥을 먹기 위해서 숫가락, 젓가락이 모두 필요한 상황인데 A는 숫가락을, B는 젓가락을 들고 서로의 젓가락/숫가락을 무한 대기하는 현상 ex: 자동차들이 한 길 점유하고 다른 길을 막고 있는 경우 ...
1. 우선순위 역전 Priority inversion 스레드의 동기화로 인해 높은 순위의 스레드가 낮은 스레드보다 늦게 스케줄링되는 현상 우선순위를 기반으로 스케줄링하는 실시간 시스템에서 스레드 동기화로 인해 발생 실시간 시스템의 근본이 붕괴된다는 점에서 큰 문제 높은 순위의 ...
1. 동기화 종류 크게 3가지 종류가 있음 뮤텍스(mutex) 스핀락(spinlock) 세마포어(semaphore): 자원이 여러개인 경우 1.1. locks 방식 뮤텍스(mutex), 스핀락(spinlock) 상호배제가 되도록 만들어진 락(lock) 활용 Mutex는 동...
1. 데이터베이스 프로그래밍 프로그래밍이란? 프로그램을 설계하고 소스코드를 작성하여 디버깅하는 과정 데이터베이스 프로그래밍이란? DBMS에 데이터를 정의하고 저장된 데이터를 읽어와 데이터를 변경하는 프로그램을 작성하는 과정 일반 프로그래밍과의 차이점: 프로그래밍 도중 SQL을 ...
1. Mutual Exclusion(상호 배제) 1.1. 원칙(목표) 임계영역에는 오직 한 개의 프로세스/스레드만 진입하게 하는 것 입구에 게이트를 두고, 이를 잠글 수 있는 열쇠 ‘Lock’을 만드는 것 Lock이 on이 되어있으면 못 들어가게 함 1.2. Mutual Exclusion primitives enterCS()...
1. 공유 자원 공유 자원이란? 하나를 두고 여럿이 쓰는 것 다중 프로그래밍에서는 CPU도 공유 자원임 여러 프로세스/스레드가 공동으로 이용하는 변수, 메모리, 파일 등 공동으로 이용되기 때문에 누가 언제 데이터를 읽거...
1. Introduction 모던 자바 인 액션 챕터 10에서 DSL(Domain Specific Language)의 개념과 구현법 및 사용법이 소개되었다. 모두 읽고난 뒤 스프링 진영에서 사용하는 DSL은 무엇이 있을까 궁금하여 찾아본 결과 QueryDSL라는 라이브러리의 존재를 알게 되었다. 본 글에서는 QueryDSL이 무엇인지, 사용 방법은 ...
1. 파일을 이용한 통신 데이터를 쓰고 읽는 함수를 통해 이뤄진다. 예시: open, write, read #include <stdio.h> #include <unistd.h> #include <fcntl.h> int main() { int fd; char b...
1. 프로세스간 통신(IPC) 프로세스간 통신이 아닌 스레드 간 통신을 생각해보자. 이는 프로세스 내부 통신, 즉 Code, Data, Heap 영역을 공유자원으로 활용하므로 비교적 간단하다. 그러나 프로세스 간 통신(IPC, Inter-Process Communication)은 가상메모리로 인해 직접 통신이 불가능하다. 이런 이유로 프로세스 간에는...