IT239 운영체제 #12 입출력 하드웨어 기본 구성버스(Bus): CPU, 메모리, 장치 컨트롤러를 연결하는 전송 통로. (주소 버스, 데이터 버스, 제어 버스로 나뉨)장치 컨트롤러(Device Controller): 각 장치에 특화된 제어 로직을 담당. CPU와 장치 사이의 인터페이스 역할.장치(Device): 실제 물리적인 입출력 장치(디스크, 프린터, 키보드 등).자료 이동 방식프로그램된 I/O (Programmed I/O, PIO)CPU가 직접 메모리와 장치 사이의 데이터 전송을 제어.CPU가 장치 레지스터를 반복적으로 확인(Polling)해야 하므로 CPU 낭비 큼.DMA (Direct Memory Access)DMA 컨트롤러가 장치와 메모리 사이의 데이터를 직접 전송.CPU는 전송 시작 지시만 하고, 완료 시 인터럽트.. 2025. 9. 7. 운영체제 #11 하드 디스크 드라이브(HDD)와 비휘발성 메모리 장치(SSD 등)는 대부분의 컴퓨터에서 주요 보조저장장치(I/O 장치)로 사용된다. 최신 보조저장장치는 논리 블록의 1차원 배열로 구성되며, 컴퓨터 시스템에는 다음과 같은 방식으로 연결된다.호스트 컴퓨터의 로컬 I/O 포트마더보드에 직접 연결통신 네트워크 또는 스토리지 네트워크 보조저장장치에 대한 I/O 요청은 파일 시스템과 가상 메모리 시스템에서 발생하며, 각 요청은 참조할 장치의 논리 블록 번호로 지정된다. 디스크 스케줄링디스크 스케줄링 알고리즘은 HDD의 유효 대역폭, 평균 응답 시간, 응답 시간의 편차를 줄이기 위해 사용된다.대표적 알고리즘: SCAN, C-SCAN (엘리베이터 방식)HDD에서는 알고리즘에 따라 성능 차이가 크지만, 반도체 디스크(S.. 2025. 9. 7. 운영체제 #10 가상 메모리 개념가상 메모리(Virtual Memory) 는 물리 메모리를 추상화하여, 사용자에게는 매우 큰 균일한 저장장소 배열로 보이도록 한다.실제 물리 메모리보다 큰 주소 공간을 사용할 수 있도록 지원한다.가상메모리가 물리 메모리보다 크기가 크다.예) 32비트 시스템: 가상 주소공간 2의 32승 = 4GB, 물리 메모리 512MB가상 메모리의 이점물리 메모리보다 큰 프로그램 실행 가능전체 프로그램이 메모리에 상주할 필요 없음프로세스 간 메모리 공유 가능프로세스 생성 효율성 향상 (예: 쓰기 시 복사)페이징 - 배경초기의 메모리 관리 방식은 연속 메모리 할당(Contiguous Allocation).프로세스는 실행을 위해 연속된 물리 메모리 공간이 필요했음.시간이 지날수록 외부 단편화(External.. 2025. 8. 27. 운영체제 #9 메모리 관리 개요메모리는 현대 컴퓨터 시스템 동작의 핵심으로, 각각 고유한 주소를 갖는 큰 바이트 배열 형태이다.각 프로세스는 자신만의 주소 공간(address space) 을 갖는다. 주소 바인딩 (Address Binding)심볼릭 주소(Symbolic Address) → 논리 주소(Logical Address) → 물리 주소(Physical Address) 변환 과정이 필요하다.이 변환은 다음 시점에 일어날 수 있다:컴파일 시(binding at compile time): 실행 파일에 물리 주소를 직접 기록.적재 시(binding at load time): 실행 시점에 메모리에 적재될 때 주소 결정.실행 시(binding at execution time): 프로그램 실행 도중 MMU가 동적으로 변환.. 2025. 8. 25. 운영체제 #8 교착 상태(Deadlock)프로세스 집합의 모든 프로세스가 같은 집합 내 다른 프로세스가 보유한 자원을 기다리는 상황을 말한다. 이 경우 더 이상 진행이 불가능하며, 시스템은 교착 상태에 빠지게 된다. 교착 상태 발생의 필요조건 (네 가지)교착 상태가 발생하기 위해서는 다음 조건이 모두 충족되어야 한다.상호 배제 (Mutual Exclusion)자원은 한 번에 오직 하나의 프로세스만 사용할 수 있어야 한다.점유하며 대기 (Hold and Wait)최소 하나의 자원을 점유한 상태에서 다른 자원을 기다려야 한다.비선점 (No Preemption)이미 할당된 자원은 사용이 끝나기 전까지 강제로 빼앗을 수 없다.순환 대기 (Circular Wait)프로세스들이 자원을 기다리면서 원형으로 연결된 형태를 이뤄야 한.. 2025. 8. 24. 운영체제 #7 프로세스 동기화의 고전적인 문제Bounded Buffer (Producer-Consumer Problem, 유한 버퍼 문제)생산자와 소비자가 공유 버퍼를 사용할 때 발생하는 동기화 문제.→ 버퍼가 가득 찼을 때 생산자는 대기, 버퍼가 비었을 때 소비자는 대기해야 한다.Reader-Writer Problem (독자-저자 문제)여러 프로세스가 같은 데이터베이스에 접근할 때 발생.→ 여러 Reader는 동시에 접근 가능하지만, Writer는 단독으로 접근해야 한다.Dining Philosophers Problem (식사하는 철학자 문제)여러 프로세스가 한정된 자원(포크)을 공유하면서 교착 상태나 기아 상태 없이 자원을 사용하는 문제.동기화 문제 해결에 사용되는 도구들Mutex / Lock상호 배제를 보장하는 .. 2025. 8. 20. 이전 1 2 3 4 ··· 40 다음