CS 11

자료구조 정리

자료구조 - 데이터를 효율적으로 저장하고 관리하기 위한 방법알고리즘 - 어떤 목적을 이루기 위한 효율적인 연산 방법배열일정한 메모리 공간을 차지하는 여러 요소들이 순차적으로 나열된 자료구조각 요소는 0부터 시작하는 고유한 순서 번호인 index가 매겨짐, 인덱스로 배열의 요소 식별배열과 유사한 컴퓨터 부품 - RAMRAM은 어떤 주소에 접근하든 접근 시간이 일정(Random Access Memory), 배열도 마찬가지인덱스를 통해 요소에 접근하는 시간은 요소의 개수와 무관하게 일정 -> O(1)앞부터 차례대로 특정 요소가 있는지를 찾는 연산 -> O(n)특정 요소 추가/삭제 삽입 혹은 삭제 연산 이후에 모든 요소들의 재정렬 가정했을때 -> O(n)연결 리스트 (linked list) 노드의 모음으로 구성..

CS 2026.07.08

[운영체제] 파일과 디렉터리

파일 시스템 (file system)파일과 디렉터리를 관리하는 운영체제 내의 프로그램파일 시스템이 파일과 디렉터리를 보조기억장치에 할당하고 접근하는 방법대표적인 파일 시스템의 종류(FAT 파일 시스템, 유닉스 파일 시스템) 학습파일보조기억장치에 저장된 관련 정보의 집합 (파일을 실행하기 위한 정보 + 부가 정보(=속성, 메타 데이터))의미 있고 관련 있는 정보를 모은 논리적 단위운영체제가 지원하는 파일 연산을 위한 시스템 호출:파일 생성, 삭제, 열기, 닫기, 읽기, 쓰기 등 ...디렉터리윈도우에서는 폴더(folder)여러 계층으로 파일 및 폴더를 관리하는 트리 구조 디렉터리최상위 디렉터리(루트 디렉터리, /), 서브 디렉터리많은 운영체제에서는 디렉터리를 그저 '특별한 형태의 파일'로 간주경로디렉터리를 ..

CS 2026.07.08

[운영체제] 가상 메모리, 페이지 교체

스와핑현재 사용되지 않는 프로세스들을 보조기억장치의 일부 영역으로 쫓아내고 그렇게 생긴 빈 공간에 새 프로세스 적재 프로세스들이 요구하는 메모리 공간 크기 > 실제 메모리 크기스왑 영역 크기 확인하기: free, top 명령어연속 메모리 할당프로세스는 메모리의 빈 공간에 할당되어야 한다. 빈 공간이 여러 개라면?최초 적합, 최적 적합, 최악 적합 - 빈공간에 어떤 식으로 적재할 지 (연속 메모리 할당 방식)단점 - 외부 단편화, 물리 메모리보다 큰 프로세스 실행 불가최초 적합 (first-fit)운영체제가 메모리 내의 빈 공간을 순서대로 검색하다 적재할 수 있는 공간을 발견하면, 그 공간에 프로세스를 배치하는 방식검색 최소화, 빠른 할당최적 적합 (best-fit)운영체제가 빈 공간을 모두 검색해본 뒤,..

CS 2026.07.08

[운영체제] 교착 상태

교착 상태란?일어나지 않을 사건을 기다리며 진행이 멈춰버리는 현상자원 할당 그래프교착 상태 발생 조건 파악 가능프로세스는 원으로, 자원의 종류는 사각형으로 표현사용할 수 있는 자원의 개수는 자원 사각형 내에 점으로 표현프로세스가 어떤 자원을 할당 받아 사용 중이라면 자원에서 프로세스를 향해 화살표를 표시프로세스가 어떤 자원을 기다리고 있다면, 프로세스에서 자원으로 화살표를 표시자원 할당 그래프로 교착 상태가 언제 발생하는지 확인 가능, 교착 상태가 일어나면 그래프가 원의 형태를 띄고 있음교착 상태가 발생할 조건상호 배제 : 한 프로세스가 사용하는 자원을 다른 프로세스가 사용할 수 없는 상태점유와 대기 : 자원을 할당 받은 상태에서 다른 자원을 할당 받기를 기다리는 상태비선점 : 어떤 프로세스도 다른 프로..

CS 2026.07.06

[운영체제] 프로세스 동기화

동시다발적으로 실행되는 프로세스들은 서로 협력하며 영향을 주고받는데. 이 과정에서 자원의 일관성을 보장해야 한다.공동의 목적을 위해 동시에 수행되는 프로세스ex) 워드 프로세서 프로그램 - 맞춤법 검사 프로세스, 입력 내용을 화면에 출력하는 프로세스 ... 등동기화란?프로세스들의 수행 시기를 맞추는 것실행 순서 제어: 프로세스를 올바른 순서대로 실행하기상호 배제: 동시에 접근해서는 안 되는 자원에 하나의 프로세스만 접근하게 하기실행 순서 제어를 위한 동기화: reader writer problem 프로세스Writer: Book.txt 파일에 값을 저장하는 프로세스Reader: Book.txt 파일에 저장된 값을 읽어들이는 프로세스이 프로세스들은 실행의 순서가 있으므로, 특정 조건이 선행되어야함상호 배제를..

CS 2026.07.06

[운영체제] CPU 스케줄링

CPU 스케줄링운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것입출력 작업이 많은 프로세스(=입출력 집중 프로세스)의 우선순위는 CPU 작업이 많은 프로세스(=CPU 집중 프로세스)의 우선순위보다 높다.프로세스 우선순위가 PCB에 저장스케줄링 큐준비 큐CPU를 이용하기 위해 기다리는 줄대기 큐입출력장치를 이용하기 위해 기다리는 줄같은 장치를 요구한 프로세스들은 같은 큐에서 대기선점형 스케줄링 (preemptive scheduling)현재 CPU를 사용 중인 프로세스로부터 CPU 자원을 빼앗아 다른 프로세스에 할당어느 한 프로세스의 자원 독점을 막고, 프로세스들에 골고루 자원을 배분할 수 있음문맥 교환 과정에서 오버헤드가 발생할 수 있음비선점형 스케줄링현재 CPU를 사용 중인 프로세스..

CS 2026.07.04

[운영체제] 프로세스와 스레드

프로세스포그라운드 프로세스 (foreground process)사용자가 볼 수 있는 공간에서 실행되는 프로세스백그라운드 프로세스 (background process)사용자가 볼 수 없는 공간에서 실행되는 프로세스사용자와 상호작용 가능한 백그라운드 프로세스 / 사용자와 상호작용하지 않고 정해진 일을 수행하는 백그라운드 프로세스 (데몬, 서비스)프로세스 제어 블록모든 프로세스는 실행을 위해 CPU가 필요하나, CPU 자원은 한정되어 있음프로세스들은 돌아가며 한정된 시간만큼만 CPU 이용 -> 타이머 인터럽트가 발생하면 차례 양보빠르게 번갈아 수행되는 프로세스들을 관리해야 함 -> 프로세스 제어블록 알고리즘을 사용 (PCB, 커널 영역에 적재)프로세스 관련 정보를 저장하는 자료 구조마치 상품에 달린 태그와 같..

CS 2026.07.04

[운영체제] 커널, 시스템 콜, 이중 모드

커널(kernel)은 운영체제의 핵심 서비스를 담당한다.운영체제는 응용 프로그램들이 자원에 접근하려 할 때 오직 자신을 통해서만 접근하도록 하여 자원을 보호한다. 이중 모드CPU가 명령어를 실행하는 모드를 크게 사용자 모드와 커널 모드로 구분하는 방식사용자 모드운영체제 서비스를 제공받을 수 없는 실행 모드커널 영역의 코드를 실행할 수 없는 실행 모드자원 접근 불가커널 모드운영체제의 서비스를 제공받을 수 있는 실행 모드자원 접근을 비롯한 모든 명령어 실행 가능시스템 호출커널 모드로 전환하여 실행하기 위해 호출일종의 소프트웨어 인터럽트! 운영체제의 핵심 서비스프로세스 관리프로세스 == 실행 중인 프로그램수많은 프로세스들이 동시다발적으로 생성/실행/삭제 -> 이를 일목요연하게 관리프로세스와 스레드. 프로세스 ..

CS 2026.07.03

[컴퓨터 구조] 입출력장치

입출력장치는 종류가 너무 많고, 정보를 주고받는 방식을 규격화하기 어려움일반적으로 CPU와 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮음전송률이란 데이터를 얼마나 빨리 교환할 수 있는지를 나타내는 지표장치 컨트롤러와 장치 드라이버입출력 장치는 장치 컨트롤러를 통해 컴퓨터와 연결되어 정보를 주고받음CPU와 입출력장치 간의 통신 중개 - 일종의 번역가 역할오류 검출데이터 버퍼링버퍼링이란 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼라는 임시 저장 공간에 저장하여 전송률을 비슷하게 맞추는 방법장치 컨트롤러의 구조데이터 레지스터CPU와 입출력장치 사이에 주고받을 데이터가 담기는 레지스터 (버퍼)RAM을 사용하기도상태 레지스터상태 정보 저장 - 입출력장치가 입출력 작업을 할 준..

CS 2026.07.03

[컴퓨터 구조] 메모리

RAM의 특성과 종류RAM : 휘발성 저장 장치 - 전원 끄면 사라짐RAM 용량이 크면 많은 프로그램을 동시에 실행하는 데에 유리DRAM (Dynamic RAM)저장된 데이터가 동적으로 사라지는 RAM -> 데이터의 소멸을 막기 위해 주기적으로 재활성화 해야 함일반적으로 메모리로 사용되는 RAM -> 상대적으로 소비 전력이 낮고 저렴하고, 집적도가 높아 대용량으로 설계하기 용이SRAM (Static RAM)저장된 데이터가 정적인 (사라지지 않는) RAMDRAM보다 일반적으로 더 빠름일반적으로 캐시 메모리에서 사용되는 RAM -> 상대적으로 소비전력이 높고 가격이 높고 집적도가 낮음대용량으로 설계할 필요는 없으나 빨라야 하는 장치에 사용SDRAM (Synchronous DRAM)특별한 (발전된 형태의) S..

CS 2026.06.29