일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- httpmessageconverter
- 비트마스킹
- Linux
- 누적합
- REST API
- 깃
- git
- 투포인터
- 스프링부트
- github
- Prefix sum
- 슬라이딩 윈도우
- 부팅 장애 대응
- 다이나믹 프로그래밍
- AppArmor
- SlidingWindow
- 너비우선탐색
- 알고리즘
- Spring Boot
- 네트워크 관리 및 진단
- 로그 수집
- 깊이우선탐색
- 스프링
- TwoPointer
- 브루트포스
- 깃허브
- 분할정복
- spring
- 리눅스
- bitmasking
- Today
- Total
목록CS/OS (9)
kimgusxo 님의 블로그
1. 운영체제 보안이 꼭 필요한 이유공격 지점의 80% 이상이 OS 계층에서 시작(루트 권한 탈취, 커널 취약점 악용, 잘못된 파일 권한 등)백엔드 서비스가 아무리 안전한 코드여도 OS 레벨이 뚫리면 무용지물이다.보안 패치, 권한 정책, 로그 감시는 개발자로써도 중요하다. 2. 리눅스 권한 모델과 사용자 계층구분의미UID 0 (root)모든 자원을 제약 없이 건드릴 수 있는 슈퍼계정일반 사용자개인 작업이나 서비스 실행용 계정서비스 계정웹, DB, 매트릭 등 특정 서비스만 돌리는 전용 계정리눅스는 사용자를 UID/GID로 식별한다./etc/passwd(계정 정보), /etc/shadow(암호 해시), /etc/group(그룹) 파일을 사용함.로그인에 성공하면 커널이 해당 UID/GID를 프로세스에 부여해 ..
1. 파일 시스템(File System)이란?데이터를 저장하고 관리하는 OS의 핵심 기능OS는 디스크의 데이터를 파일 단위로 관리하고, 이를 디렉토리 트리로 조직화한다.파일: 바이트들의 모음 + 그 파일에 관한 정보 1-1. 파일 시스템이 하는 일1. 파일 이름 관리: 파일/디렉토리를 트리 구조로 이름 붙여 관리2. 저장공간 관리: 디스크 블록을 할당 및 회수3. 무결성 보장: 손상 방지 및 복구4. 보안: 권한/소유자로 접근 제어5. 효율적 접근: 캐시/디렉토리 인덱싱 등으로 빠르게 접근 2. 파일의 구성요소항목설명파일 이름디렉토리에 저장되는 라벨이다.데이터 블록실제 내용이 저장되는 디스크 영역이다.메타데이터파일 크기, 생성일, 권한, 소유자 등 정보를 표현함.inode(index node)그 파일의 ..

1. 메모리 관리는 왜 중요한가?운영체제는 여러 프로그램이 메모리를 안전하고 효율적으로 사용할 수 있게 관리한다.사용자가 16GB RAM을 갖고 있더라도 OS는 수십 개의 프로세스가 이를 나눠 쓸 수 있게 만들어야 한다. 2. 페이징(Paging)이란?메모리를 고정 크기의 페이지(Page) 단위로 나눔논리 주소 = 페이지 번호 + 오프셋페이지 테이블(Page Table)을 통해 실제 주소를 참조한다.장점: 외부 단편화 없음, 모든 페이지가 동일한 크기이다.단점: 페이지 테이블을 관리하는데 비용이 발생한다. 3. 세그멘테이션(Segmentation)이란?메모리를 의미 단위인 세그먼트(Segment)로 나눈다 (ex: 코드, 데이터, 스택)세그먼트들 마다 크기가 다르다.장점: 논리적 구조를 반영하기 쉽다.단..
1. 데드락(Deadlock)이란?두 개 이상의 프로세스가 서로가 가진 자원을 기다리며 무한정 대기하는 상황시스템이 멈춘 듯한 현상이지만 프로세스들은 종료되지 않고 계속 대기함 2. 데드락 발생 조건(Coffman's Conditions)1. 상호 배제(Mutual Exclusion): 한 번에 하나의 프로세스만 자원을 사용할 수 있음.2. 점유 대기(Hold and Wait): 자원을 점유한 채로 다른 자원을 기다린다.3. 비선점(No Preemption): 다른 프로세스의 자원을 강제로 빼앗을 수 없음.4. 환형 대기(Circular Wait): 프로세스들이 원형으로 서로 자원을 기다림.-> 이 4가지 조건이 모두 충족되면 데드락 발생 가능! 3. 데드락 예방(Prevention)상호 배제 제거: 자..

1. 병행성(Concurrency)이란?단일 코어라도 시분할과 선점형 스케줄링으로 여러 작업이 동시에 도는 것처럼 보이는 구조실제로는 CPU가 시분할 방식으로 번갈아 처리하지만 사용자에게는 동시에 실행되는 것처럼 보인다.공유 변경 가능 상태 + 임계 구역 = 병행성이 문제를 만드는 지점이다. 2. 동기화(Synchronization)란?여러 스레드/프로세스가 공유자원을 사용할 때 올바른 결과와 일관성을 보장하도록 제어하는 모든 매커니즘을 말한다 2-1. 동기화의 필요성여러 스레드가 같은 데이터를 고치면 순서/타이밍에 따라 결과가 달라짐.이 문제를 해결하기 위한 매커니즘이 동기화이다. 2-2. 동기화가 보장해야하는 3가지원자성(Atomicity): 어떤 연산을 "쪼개지지 않는 한 번의 단위"로 수행하게 함..

1. CPU 스케줄링이란?Ready 상태인 프로세스들 중에서 어떤 프로세스를 다음에 실행할지 결정하는 운영체제의 정책CPU는 자원이 한정되어 있으므로 효율적인 순서 선택이 시스템 성능에 직접적인 영향을 미친다. 2. 스케줄러의 종류Long-term scheduler: 어떤 프로세스를 메모리에 올릴지 결정 -> 시스템 부하 조절Short-term scheduler: 어떤 Ready 프로세스를 CPU에 할당할지 결정(중심 역할)Medium-term scheduler: 메모리 압박 시 프로세스를 일시 중지/복귀 결정(swapping) 3. 스케줄링 알고리즘 종류3-1. FCFS(First Come First Serve, 비선점형)먼저 온 순서대로 처리하며 단순하지만 Convoy Effect(긴 작업 뒤에 짧은..

1. CPU는 어떻게 여러 작업을 동시에 처리하는가?실제로는 CPU는 한 번에 하나의 명령어만 실행한다. 하지만 시분할, 스케줄링, 멀티코어 등으로 여러 작업이 동시에 처리되는 것 처럼 느낀다.시분할(Time Sharing): 타이머 인터럽트가 주기적으로 발생하고 커널 스케줄러가 타임 슬라이스 단위로 작업을 번갈아 실행해 "동시"처럼 보이게 함선점형 스케줄링: 더 높은 우선순위 작업이 도착하면 현재 작업을 중간에 끊고 교체한다.멀티코어: 코어가 여러 개면 실제로 병렬로 실행된다. 2. 프로세스 상태 전이(Process State Transition)운영체제는 각 프로세스가 현재 어떤 상태에 있는지 지속적으로 관리한다.상태설명New로드되어 생성 중(PCB/TCB 초기화)인 상태ReadyCPU만 할당되면 즉..

1. 프로세스(Process)란?실행중인 프로그램의 인스턴스하나의 프로그램이 실행되면 OS는 해당 프로그램을 메모리에 로드하고 프로세스로 관리한다. 1-1. 프로세스 특징독립된 메모리 공간을 가진다 (Code, Data, Stack, Heap)OS는 각 프로세스마다 PID(ProcessID)를 부여한다.프로세스 간 메모리 접근은 원칙적으로 불가능하다. 2. 스레드(Thread)란?프로세스 내에서 실행 흐름 단위하나의 프로세스는 여러 개의 스레드(멀티스레드)를 가질 수 있다. 2-1. 스레드 특징같은 프로세스 내 스레드끼리는 메모리 공간을 공유한다.Stack 영역만 독립이고 나머지 Code, Heap 메모리 등은 공유한다.자원 공유가 쉬우나 동기화 문제가 발생할 수 있다. 3. 프로세스 vs 스레드항목메모..

1.운영체제는 왜 필요한가?운영체제는 컴퓨터 자원을 효율적으로 관리하고 사용자와 하드웨어 사이의 인터페이스를 제공하는 프로그램이다.즉, 우리가 작성한 프로그램과 하드웨어를 연결해주는 "중재자" 역할을 한다. 2. 운영체제의 주요 역할역할설명프로세스 관리CPU 자원을 효율적으로 분배한다. (멀티태스킹)메모리 관리RAM 공간을 할당, 해제, 보호한다.파일 시스템 관리파일을 생성, 삭제하고 읽고 쓰기 등을 한다.입출력 장치 제어디스크와 네트워크 등 하드웨어를 제어한다.사용자 인터페이스 제공CLI, GUI 같은 UI를 제공한다. 3. 운영체제의 구조사용자 공간(User Space): 일반 어플리케이션이 실행되는 공간커널 공간(Kernel Space): OS의 핵심 기능이 동작하는 공간 (완전한 권한)프로그램이 ..