Java 13

(OS) 유저 모드와 커널 모드, 그리고 인터럽트와 시스템 콜 (예제 있음)

유저 모드와 커널 모드, 그리고 인터럽트와 시스템 콜1. 유저 모드 vs 커널 모드모던 운영체제는 CPU의 실행 권한을 **유저 모드(User Mode)**와 **커널 모드(Kernel Mode)**로 나눔.이유는 운영체제와 시스템 자원을 보호하기 위함임.유저 모드애플리케이션(사용자 프로그램)이 실행되는 환경CPU는 제한된 명령어만 사용 가능직접 하드웨어 접근 불가 (예: 디스크, 메모리 제어, 네트워크 등)문제가 발생하더라도 시스템 전체에는 영향을 미치지 않음커널 모드운영체제의 핵심인 커널이 실행되는 환경CPU는 모든 명령어 실행 가능 (하드웨어 제어 포함)시스템 자원 관리 (메모리, CPU 스케줄링, 파일 시스템 등)모든 프로세스의 보호와 보안을 책임짐2. 모드 전환 (유저 모드 → 커널 모드)유저 ..

(OS) 자바 스레드의 상태 – OS 프로세스 상태 비교

자바 스레드의 상태 – OS 프로세스와 어떻게 다를까?멀티스레드 프로그래밍을 하다 보면, Runnable, Blocked, Waiting 같은 자바 스레드 상태들이 헷갈릴 수 있습니다.운영체제(OS)의 프로세스 상태와도 비슷한 듯 다른 이 구조, 이번 글에서 명확하게 정리해보겠습니다.1. OS의 프로세스 상태 (Process States in OS)운영체제에서 프로세스는 기본적으로 다음과 같은 상태를 가집니다:  상태설명New프로세스가 막 생성됨 (아직 실행 준비 X)Ready실행 준비 완료, CPU 할당을 기다림RunningCPU에서 실행 중Waiting (Blocked)I/O 등 외부 자원을 기다리며 대기Terminated실행 완료 후 종료됨 특징:CPU 중심적인 상태 변화실행 준비 / 실행 중 / ..

자료구조 기초 정리 (배열, 리스트 , Set , Map 예시 - java )

2025년 4월 3일자바 자료구조 공부자료구조 기초 정리1. 배열 (Array)배열은 동일한 자료형의 데이터를 연속된 메모리 공간에 저장하는 선형 자료구조로, 인덱스를 기반으로 한 임의 접근(random access)이 가능하다. Java에서 배열은 선언 시 고정된 크기를 가지며, 이후 크기를 변경할 수 없다. 배열은 인덱스를 이용한 조회 연산에서 시간 복잡도 O(1)의 효율을 가지며, 삽입 또는 삭제 시 전체 데이터를 이동해야 하므로 O(n)의 시간 복잡도를 갖는다. ex) int[] arr = new int[5];arr[0] = 10; 배열은 메모리상 연속된 공간을 점유하므로 CPU 캐시 효율이 높고, 인덱스를 통한 접근이 매우 빠르다. 그러나 삽입과 삭제 연산이 잦은 경우에는 성능상의 단점이 존재한..