← 홈

노션식 개념 정리

컴시기 · 임베기

과목을 고른 뒤 아래로 쭉 내리면서 개념, 빈출, 비교, 예상문제, 암기를 한 번에 보세요.

컴퓨터 시스템

컴시기 정리

객관식 필기 기준으로 CPU, 메모리, 운영체제, 프로세스, 스케줄링, 가상 메모리, 네트워크를 헷갈리는 선택지까지 정리했습니다.

개념

컴퓨터 시스템 구성

컴퓨터 시스템은 하드웨어, 소프트웨어, 데이터, 사용자로 구성된다. 하드웨어는 물리 장치, 소프트웨어는 하드웨어를 제어하거나 문제를 해결하는 프로그램이다.

  • 하드웨어: CPU, 메모리, 저장장치, 입출력장치
  • 시스템 소프트웨어: 운영체제, 컴파일러, 드라이버
  • 응용 소프트웨어: 문서 작성, 웹 브라우저, 게임
CPU

CPU는 명령어를 해석하고 실행하는 중앙처리장치다. 제어장치가 명령어 흐름을 관리하고, ALU가 산술/논리 연산을 수행하며, 레지스터가 임시 데이터를 저장한다.

  • 제어장치: 명령어 해석, 제어 신호 생성
  • ALU: 덧셈, 뺄셈, AND, OR 같은 연산
  • 레지스터: PC, IR, MAR, MBR 등
명령어 실행 사이클

CPU는 명령어를 가져오고 해석한 뒤 실행한다. 이 과정이 프로그램이 끝날 때까지 반복된다.

  • Fetch: 메모리에서 명령어 인출
  • Decode: 명령어 해석
  • Execute: 연산, 분기, 데이터 이동 수행
  • Write Back: 결과를 레지스터나 메모리에 저장
레지스터

레지스터는 CPU 내부의 가장 빠른 저장 공간이다. 용량은 작지만 명령어 실행에 직접 사용된다.

  • PC: 다음 실행할 명령어 주소
  • IR: 현재 실행 중인 명령어
  • MAR: 접근할 메모리 주소
  • MBR/MDR: 메모리에서 읽거나 쓸 데이터
메모리 계층 구조

속도가 빠른 저장장치는 비싸고 용량이 작다. 따라서 자주 쓰는 데이터는 CPU 가까이에 두고, 큰 데이터는 느린 저장장치에 둔다.

  • 속도: 레지스터 > 캐시 > RAM > SSD/HDD
  • 용량: SSD/HDD > RAM > 캐시 > 레지스터
  • 목적: 속도와 비용의 균형
캐시와 지역성

캐시는 CPU와 RAM 사이의 속도 차이를 줄인다. 프로그램은 최근 사용한 데이터나 그 주변 데이터를 다시 사용할 가능성이 높다는 지역성을 가진다.

  • 시간 지역성: 최근 사용한 데이터를 다시 사용
  • 공간 지역성: 접근한 주소 근처를 사용
  • 캐시 히트: 캐시에 데이터 있음
  • 캐시 미스: RAM에서 가져와야 함
운영체제

운영체제는 컴퓨터 자원을 관리하고 사용자 프로그램이 하드웨어를 편리하고 안전하게 사용할 수 있게 해준다.

  • 프로세스 관리
  • 메모리 관리
  • 파일 시스템 관리
  • 입출력 장치 관리
  • 보안과 권한 관리
커널과 사용자 모드

커널은 운영체제의 핵심 부분으로 하드웨어 자원을 직접 제어한다. 일반 프로그램은 사용자 모드에서 실행되어 시스템을 보호한다.

  • 커널 모드: 하드웨어 직접 접근 가능
  • 사용자 모드: 제한된 권한
  • 시스템 콜: 사용자 모드에서 커널 기능 요청
프로세스

프로세스는 실행 중인 프로그램이다. 코드, 데이터, 힙, 스택 같은 독립적인 메모리 공간과 실행 상태를 가진다.

  • New: 생성
  • Ready: CPU 대기
  • Running: 실행
  • Waiting: 입출력 등 대기
  • Terminated: 종료
스레드

스레드는 프로세스 내부의 실행 흐름이다. 같은 프로세스의 코드, 데이터, 힙을 공유하고 각자 스택과 레지스터 상태를 가진다.

  • 생성/전환 비용이 프로세스보다 작음
  • 데이터 공유가 쉬움
  • 하나의 오류가 프로세스 전체에 영향을 줄 수 있음
CPU 스케줄링

스케줄링은 여러 프로세스 중 어떤 것에 CPU를 줄지 결정하는 작업이다. 목적은 CPU 이용률, 처리량, 응답 시간, 대기 시간의 균형이다.

  • FCFS: 먼저 온 순서
  • SJF: 짧은 작업 우선
  • Round Robin: 시간 할당량 기준 순환
  • Priority: 우선순위 기준
동기화와 임계구역

여러 스레드나 프로세스가 공유 자원에 동시에 접근하면 경쟁 상태가 발생할 수 있다. 이를 막기 위해 임계구역과 동기화 기법을 사용한다.

  • 뮤텍스: 하나만 접근
  • 세마포어: 정해진 개수만 접근
  • 데드락: 서로 자원을 기다리며 멈춤
  • 기아: 특정 작업이 계속 밀림
인터럽트

인터럽트는 CPU가 현재 작업을 중단하고 먼저 처리해야 할 사건을 처리하도록 하는 신호다.

  • 현재 상태 저장
  • 인터럽트 서비스 루틴 실행
  • 상태 복구
  • 원래 작업 재개
시스템 콜

시스템 콜은 사용자 프로그램이 운영체제 커널의 기능을 사용하기 위한 공식 인터페이스다.

  • 파일 열기/읽기/쓰기
  • 프로세스 생성/종료
  • 메모리 할당
  • 네트워크 송수신
가상 메모리

가상 메모리는 프로그램마다 독립적인 주소 공간을 제공하고, 필요한 부분만 물리 메모리에 올려 RAM을 효율적으로 쓰게 한다.

  • 페이지: 가상 메모리 단위
  • 프레임: 물리 메모리 단위
  • 페이지 테이블: 주소 변환 정보
  • 페이지 폴트: 필요한 페이지가 RAM에 없음
파일 시스템

파일 시스템은 데이터를 파일과 디렉터리 형태로 저장하고 관리한다. 이름, 위치, 크기, 권한 같은 메타데이터도 함께 관리한다.

  • 파일 생성/삭제/읽기/쓰기
  • 디렉터리 구조
  • 접근 권한
  • 저장 공간 할당
네트워크 기초

네트워크는 여러 장치가 데이터를 주고받는 구조다. IP는 주소, TCP/UDP는 전송 방식, DNS는 도메인 변환, HTTP/HTTPS는 웹 통신에 사용된다.

  • IP: 장치 주소
  • TCP: 신뢰성 있는 연결 지향
  • UDP: 빠른 비연결
  • DNS: 도메인 → IP
  • HTTPS: 암호화된 HTTP

단원별 상세 정리

컴퓨터 구조 큰 그림

입력장치가 데이터를 넣고, CPU가 명령어를 실행하며, 메모리와 저장장치가 데이터를 보관하고, 출력장치가 결과를 보여준다.

  • CPU는 계산 자체보다 명령어 흐름 제어가 중요하다.
  • RAM은 실행 중인 프로그램과 데이터를 올려두는 공간이다.
  • 저장장치는 전원이 꺼져도 데이터가 남는 공간이다.
  • 입출력장치는 CPU 입장에서 속도가 느리기 때문에 인터럽트와 버퍼가 자주 함께 나온다.

버스

버스는 컴퓨터 내부 장치들이 데이터를 주고받는 통로다.

  • 주소 버스: 접근할 메모리나 장치의 위치를 전달한다.
  • 데이터 버스: 실제 데이터를 주고받는다.
  • 제어 버스: 읽기/쓰기, 인터럽트, 클럭 같은 제어 신호를 전달한다.
  • 버스 폭이 넓을수록 한 번에 옮길 수 있는 데이터가 많다.

주소 지정 방식

명령어가 피연산자를 어디서 가져올지 정하는 방식이다.

  • 즉시 주소 지정: 명령어 안에 값이 직접 들어 있다.
  • 직접 주소 지정: 명령어 안에 메모리 주소가 들어 있다.
  • 간접 주소 지정: 명령어가 가리키는 주소에 실제 주소가 들어 있다.
  • 레지스터 주소 지정: 피연산자가 레지스터에 있다.

문맥 교환

CPU가 실행 중인 프로세스를 바꿀 때 이전 프로세스 상태를 저장하고 다음 프로세스 상태를 복구하는 작업이다.

  • 저장 대상은 PC, 레지스터, 프로세스 상태 등이다.
  • 문맥 교환이 너무 잦으면 오버헤드가 커진다.
  • Round Robin의 시간 할당량이 너무 작으면 문맥 교환 비용이 커진다.
  • 프로세스보다 스레드 문맥 교환이 일반적으로 가볍다.

스케줄링 알고리즘 감 잡기

스케줄링 문제는 평균 대기 시간, 응답성, 기아 가능성을 함께 본다.

  • FCFS는 단순하지만 긴 작업이 앞에 있으면 뒤 작업이 오래 기다린다.
  • SJF는 평균 대기 시간이 짧지만 실행 시간을 미리 알아야 한다.
  • Priority는 중요 작업을 먼저 처리하지만 낮은 우선순위 작업이 굶을 수 있다.
  • Round Robin은 사용자 응답성이 좋아 시분할 시스템에 적합하다.

메모리 관리

운영체제는 여러 프로그램이 메모리를 안전하게 나누어 쓰도록 관리한다.

  • 연속 할당은 단순하지만 외부 단편화가 생길 수 있다.
  • 페이징은 고정 크기 페이지로 나누어 외부 단편화를 줄인다.
  • 세그먼테이션은 코드, 데이터, 스택 같은 논리 단위로 나눈다.
  • TLB는 페이지 테이블 접근을 빠르게 하기 위한 캐시다.

파일 시스템 심화

파일 시스템은 파일 내용뿐 아니라 파일 이름, 크기, 위치, 권한 같은 메타데이터를 관리한다.

  • 디렉터리는 파일 이름과 위치 정보를 관리하는 구조다.
  • 파일 할당 방식에는 연속 할당, 연결 할당, 색인 할당이 있다.
  • 권한 관리는 읽기, 쓰기, 실행 권한을 제어한다.
  • 저널링 파일 시스템은 장애 복구를 쉽게 하기 위해 변경 기록을 남긴다.

네트워크 계층 감 잡기

네트워크 문제는 계층별 역할을 묻는 경우가 많다.

  • 응용 계층: HTTP, DNS처럼 사용자가 접하는 서비스
  • 전송 계층: TCP/UDP로 프로세스 간 통신 담당
  • 네트워크 계층: IP로 목적지까지 경로 전달
  • 데이터 링크 계층: 같은 네트워크 안에서 프레임 전달

보안 기초

컴퓨터 시스템 보안은 기밀성, 무결성, 가용성을 지키는 것이 핵심이다.

  • 기밀성: 허가되지 않은 사용자가 정보를 보지 못하게 함
  • 무결성: 데이터가 허가 없이 변경되지 않게 함
  • 가용성: 필요한 순간 서비스를 사용할 수 있게 함
  • 인증은 신원 확인, 인가는 권한 확인이다.

시험에서 문장 길게 쓰는 법

단답형도 정의 한 줄보다 원리와 이유를 붙이면 점수를 받기 좋다.

  • 정의 → 목적 → 예시 순서로 쓴다.
  • 비교 문제는 기준을 먼저 세운다.
  • 장단점 문제는 성능, 비용, 안정성, 구현 복잡도로 나눈다.
  • 키워드는 반드시 포함하되 문장으로 자연스럽게 연결한다.

빈출 답안

프로세스와 스레드 차이

프로세스는 독립적인 실행 단위이고 스레드는 프로세스 내부 실행 흐름이다.

프로세스는 독립 메모리를 가지며 생성 비용이 크다. 스레드는 같은 프로세스 메모리를 공유하고 생성/전환 비용이 작다.

캐시를 사용하는 이유

CPU가 RAM보다 훨씬 빠르기 때문에 둘 사이 속도 차이를 줄여야 한다.

캐시는 지역성을 이용해 자주 쓰는 데이터를 CPU 가까이에 저장하여 평균 메모리 접근 시간을 줄인다.

인터럽트 처리 순서

인터럽트는 현재 작업을 깨고 먼저 처리해야 하는 사건을 알린다.

인터럽트 발생 → 현재 상태 저장 → ISR 실행 → 상태 복구 → 원래 작업 재개.

시스템 콜이 필요한 이유

사용자 프로그램이 하드웨어나 커널 자원에 직접 접근하면 안정성과 보안 문제가 생긴다.

시스템 콜은 제한된 통로를 통해 커널 기능을 요청하게 하여 보호와 제어를 가능하게 한다.

페이지 폴트

프로그램이 접근한 가상 페이지가 물리 메모리에 없을 때 발생한다.

운영체제는 필요한 페이지를 디스크에서 RAM으로 적재하고 페이지 테이블을 갱신한 뒤 명령을 재실행한다.

데드락 조건

데드락은 프로세스들이 서로 필요한 자원을 기다리며 영원히 진행하지 못하는 상태다.

상호 배제, 점유와 대기, 비선점, 순환 대기 네 조건이 동시에 성립하면 발생할 수 있다.

TCP와 UDP

둘 다 전송 계층 프로토콜이지만 보장하는 성질이 다르다.

TCP는 연결 지향, 순서 보장, 재전송을 제공한다. UDP는 비연결 방식으로 빠르지만 신뢰성을 보장하지 않는다.

헷갈리는 비교

왼쪽오른쪽구분 포인트
캐시버퍼캐시는 재사용될 데이터를 저장해 속도를 높이고, 버퍼는 전송 중인 데이터를 임시 저장해 속도 차이를 흡수한다.
RAMFlashRAM은 휘발성 실행 공간이고, Flash는 전원이 꺼져도 유지되는 저장 공간이다.
동시성병렬성동시성은 여러 작업을 번갈아 처리하는 구조이고, 병렬성은 실제로 동시에 처리하는 구조다.
커널 모드사용자 모드커널 모드는 모든 자원 접근 권한이 있고, 사용자 모드는 제한된 권한으로 실행된다.
선점형비선점형선점형은 OS가 CPU를 빼앗을 수 있고, 비선점형은 작업이 자발적으로 CPU를 내놓는다.

예상 문제

  1. 운영체제의 역할을 설명하시오.자원 관리, 프로세스, 메모리, 파일, 입출력, 보안
  2. CPU의 구성 요소와 역할을 설명하시오.제어장치, ALU, 레지스터, 캐시
  3. 명령어 실행 과정을 설명하시오.Fetch, Decode, Execute, Write Back
  4. 프로세스 상태 전이를 설명하시오.Ready, Running, Waiting, 종료
  5. 가상 메모리의 장점을 설명하시오.독립 주소 공간, 메모리 효율, 보호, 페이지
  6. 스케줄링 알고리즘 3가지를 설명하시오.FCFS, SJF, RR, Priority
  7. 데드락의 발생 조건을 쓰시오.상호 배제, 점유와 대기, 비선점, 순환 대기
  8. TCP와 UDP의 차이와 사용 예를 쓰시오.신뢰성, 연결, 속도, 스트리밍

시험 전 정리

필기 객관식에서 먼저 볼 키워드

문제에서 묻는 대상이 CPU인지, 운영체제인지, 메모리인지 먼저 잡으면 선택지를 빠르게 지울 수 있다.

  • CPU: 명령어 실행, 레지스터, ALU, 제어장치
  • 운영체제: 자원 관리, 프로세스, 메모리, 파일, 입출력
  • 메모리: 캐시, RAM, 가상 메모리, 페이지
  • 네트워크: TCP/UDP, IP, DNS, HTTP

선택지 제거 기준

객관식은 완벽히 설명하지 못해도 틀린 말을 제거하면 맞출 확률이 크게 올라간다.

  • 항상/절대/무조건 같은 표현은 의심한다.
  • TCP를 빠르다고만 설명하거나 UDP를 신뢰성 보장이라고 하면 틀릴 가능성이 높다.
  • 스레드를 독립 메모리라고 하면 틀린 설명이다.
  • 캐시의 목적을 용량 증가라고 하면 틀린 설명이다.
  • 가상 메모리를 RAM을 물리적으로 늘리는 장치라고 하면 틀린 설명이다.

운영체제 빈출 한 줄

운영체제는 컴퓨터 자원을 효율적이고 안전하게 관리하는 시스템 소프트웨어다.

  • 프로세스 관리: 실행 흐름 관리
  • 메모리 관리: 할당, 회수, 보호
  • 파일 관리: 저장, 디렉터리, 권한
  • 입출력 관리: 장치 드라이버, 버퍼, 인터럽트
  • 보안 관리: 인증, 인가, 접근 제어

프로세스/스레드 함정

객관식에서 가장 자주 꼬는 부분은 메모리 공유 여부와 생성 비용이다.

  • 프로세스는 독립 주소 공간을 가진다.
  • 스레드는 같은 프로세스의 메모리를 공유한다.
  • 스레드는 문맥 교환 비용이 상대적으로 작다.
  • 스레드는 하나의 오류가 같은 프로세스 전체에 영향을 줄 수 있다.
  • 프로그램은 파일, 프로세스는 실행 중인 프로그램이다.

스케줄링 빠른 판별

스케줄링은 이름보다 기준을 외우는 것이 중요하다.

  • FCFS: 먼저 온 순서, 단순하지만 긴 작업이 앞을 막음
  • SJF: 짧은 작업 우선, 평균 대기 시간 감소
  • Round Robin: 시간 할당량, 시분할 시스템
  • Priority: 우선순위, 기아 가능
  • Aging: 기아 방지를 위해 오래 기다린 작업의 우선순위 상승

메모리/캐시 함정

캐시, 버퍼, 가상 메모리, 페이지 폴트의 목적을 구분해야 한다.

  • 캐시: 자주 쓰는 데이터를 가까이 두어 속도 향상
  • 버퍼: 속도 차이를 완화하기 위한 임시 저장
  • 가상 메모리: 독립 주소 공간과 메모리 효율 제공
  • 페이지 폴트: 필요한 페이지가 RAM에 없는 상황
  • TLB: 페이지 테이블 접근을 빠르게 하는 캐시

네트워크 객관식 핵심

TCP/UDP, DNS, IP, HTTP/HTTPS는 정의형으로 자주 나온다.

  • TCP: 연결 지향, 신뢰성, 순서 보장, 재전송
  • UDP: 비연결, 빠름, 신뢰성 보장 없음
  • IP: 장치 주소와 패킷 전달
  • DNS: 도메인 이름을 IP 주소로 변환
  • HTTPS: HTTP에 암호화가 더해진 웹 통신

시험 직전 5분 루틴

처음부터 깊게 읽지 말고, 빈출 비교를 머릿속에 먼저 올린다.

  • 프로세스 vs 스레드
  • 캐시 vs 버퍼
  • RAM vs Flash
  • TCP vs UDP
  • 커널 모드 vs 사용자 모드
  • 선점형 vs 비선점형
  • 페이지 vs 프레임

빠른 암기