4주차 - park-gyubi/Computer GitHub Wiki

1-1. 운영체제는 무엇을 하는가

운영체제(OS)

  • 컴퓨터의 하드웨어와 소프트웨어 자원을 관리하고 프로그램이 실행될 수 있도록 하는 시스템 소프트웨어
  • 사용자와 응용 프로그램이 하드웨어를 직접 제어하지 않아도 사용할 수 있도록 중간에서 연결함.
  • 사용자/응용 프로그램 ↔ 운영체제 ↔ 하드웨어 구조로 동작함.

운영체제의 위치

  • 사용자와 하드웨어 사이에서 동작함.

  • 일반적인 구조

    • 사용자
    • 응용 프로그램
    • 운영체제
    • 하드웨어

운영체제의 주요 관리 대상

  • CPU
  • 메모리
  • 파일
  • 입출력장치

운영체제의 주요 역할

  • CPU와 메모리 등의 자원을 여러 프로그램에 배분
  • 프로그램의 실행과 종료 관리
  • 파일과 폴더 관리
  • 키보드, 마우스, 프린터 등의 장치 관리
  • 프로그램과 사용자의 권한 관리 및 시스템 보호
  • 여러 프로그램이 동시에 실행될 수 있도록 지원

사용자 모드와 커널 모드 alt

  • 사용자 모드

    • 일반 응용 프로그램이 동작하는 영역
    • 시스템 전체에 영향을 줄 수 있는 중요한 작업을 직접 수행하지 못하도록 제한됨.
  • 시스템 호출(System Call)

    • 응용 프로그램이 운영체제의 기능을 요청하는 방법
    • 파일 접근이나 장치 사용 등이 필요할 때 운영체제에 요청함.
  • 커널 모드

    • 운영체제의 핵심 기능이 동작하는 영역
    • CPU, 메모리, 장치 등의 중요한 자원에 접근 가능
  • 보호된 통로를 통해 사용자 프로그램과 운영체제가 연결됨.

운영체제의 보호와 안정성

  • 프로세스를 서로 분리하여 한 프로그램의 문제가 다른 프로그램에 영향을 주는 것을 줄임.
  • 권한을 검사하여 허용되지 않은 작업을 제한함.
  • 파일과 장치 접근 권한을 관리함.
  • 오류가 발생했을 때 복구할 수 있도록 관리함.

멀티태스킹 사례

  • 문서 작성
  • 음악 재생
  • 파일 저장
  • 여러 프로그램이 동시에 실행되는 것처럼 보이지만 운영체제가 CPU와 자원을 나누어 사용하도록 관리함.

1-2. 컴퓨터의 시작과 부팅

부팅(Booting)

  • 컴퓨터의 전원을 켠 뒤 운영체제를 사용할 수 있는 상태까지 준비하는 과정
  • 하드웨어 준비 → 운영체제 적재 → 시스템 서비스 실행 → 사용자 로그인 등의 과정으로 진행됨.

기본 부팅 순서

  • 전원 켜기
  • 하드웨어 점검
  • 부팅 장치 찾기
  • 부트 로더 실행
  • 커널 실행
  • 로그인 ![alt](
  • 컴퓨터에 전원이 공급되면 CPU가 동작을 시작함.
  • UEFI는 운영체제가 실행되기 전에 하드웨어를 초기화하고 부팅 준비를 수행함.

POST

  • Power-On Self-Test
  • 부팅 초기에 주요 하드웨어가 정상적으로 동작하는지 확인하는 과정
  • CPU, RAM 등의 기본적인 하드웨어 상태를 점검함.

부팅 장치

  • 운영체제를 불러올 수 있는 저장장치를 찾음.

  • 예시

    • SSD
    • USB
    • 네트워크

부트 로더

  • 저장장치에서 운영체제의 커널을 찾아 메모리로 불러오고 실행하도록 연결함.
  • UEFI → EFI 시스템 파티션 → 부트 로더 → 운영체제 커널 순서로 이어질 수 있음.

메모리 적재

  • 운영체제는 저장장치에 저장되어 있지만 실행하려면 RAM으로 불러와야 함.
  • 저장장치의 운영체제 데이터 → RAM → CPU 실행

커널 적재와 초기화

  • 운영체제의 핵심인 커널이 RAM에 적재됨.
  • 커널이 CPU, 메모리, 장치 등을 사용할 수 있도록 시스템을 초기화함.
  • 초기 장치 드라이버와 파일 시스템 등을 준비함.

서비스 실행

  • 커널이 준비되면 운영체제에서 필요한 여러 시스템 서비스가 실행됨.

  • 예시

    • 네트워크
    • 그래픽·오디오
    • 보안
    • 자동 시작 프로그램

로그인

  • 시스템 준비가 끝난 후 사용자가 계정으로 로그인함.
  • 로그인 후 사용자 환경과 프로그램을 사용할 수 있게 됨.

느린 부팅의 원인

  • 저장장치 속도
  • 자동 시작 프로그램
  • 업데이트
  • 장치 초기화
  • 부팅 과정 중 어느 단계가 느린지 확인하는 것이 중요함.

보안과 복구

  • Secure Boot

    • 서명되고 신뢰할 수 있는 부트 로더를 확인하여 부팅 과정의 변조를 방지
  • 안전 모드

    • 최소한의 드라이버와 기능으로 운영체제를 실행하여 문제를 진단
  • 복구 환경

    • 부팅에 문제가 발생했을 때 시스템을 진단하거나 복원하는 데 사용

1-3. 프로세스와 멀티태스킹

프로그램과 프로세스

  • 프로그램

    • 저장장치에 저장된 실행 가능한 코드
    • 실행되기 전에는 파일 형태로 존재함.
  • 프로세스

    • 프로그램을 실행하여 실제로 CPU와 메모리 등의 자원을 사용하는 상태
  • 프로그램 파일 → 실행 → 프로세스

프로세스의 구성

  • 코드
  • 데이터
  • 메모리
  • 실행에 필요한 각종 자원
  • 운영체제는 각각의 프로세스를 구분하여 관리함.

스레드(Thread)

  • 프로세스 안에서 실제 작업을 수행하는 실행 흐름
  • 하나의 프로세스 안에 여러 스레드가 존재할 수 있음.
  • 여러 스레드를 이용하면 하나의 프로그램에서도 여러 작업을 나누어 처리할 수 있음.

프로세스 상태

  • 준비(Ready)

    • CPU를 사용할 준비가 되어 대기하는 상태
  • 실행(Running)

    • CPU를 배정받아 명령을 처리하고 있는 상태
  • 대기(Waiting)

    • 입출력 등의 작업이 끝나기를 기다리는 상태
  • 완료

    • 실행을 모두 마친 상태 ![alt](
  • 여러 프로세스가 CPU를 사용하려고 할 때 운영체제가 어떤 프로세스에 CPU를 배정할지 결정함.
  • CPU 시간을 짧게 나누어 여러 프로세스에 번갈아 배정함.
  • 빠르게 전환되기 때문에 사용자는 여러 프로그램이 동시에 실행되는 것처럼 느낄 수 있음.

선점

  • 운영체제가 현재 실행 중인 작업의 CPU 사용을 중단시키고 다른 작업에 CPU를 배정할 수 있음.
  • 특정 프로세스가 CPU를 계속 독점하는 것을 방지함.

문맥 교환(Context Switch)

  • CPU가 실행 중이던 작업을 다른 작업으로 바꾸는 과정
  • 기존 프로세스의 실행 상태를 저장
  • 다른 프로세스를 실행
  • 다시 돌아올 때 저장했던 상태를 복원
  • 문맥 교환에도 일정한 시간이 필요하므로 너무 자주 발생하면 성능 저하가 발생할 수 있음.

여러 코어

  • CPU 코어가 여러 개라면 여러 작업을 실제로 동시에 실행할 수 있음.

  • 단일 코어

    • 여러 작업을 매우 빠르게 번갈아 실행
  • 여러 코어

    • 서로 다른 코어에서 여러 작업을 동시에 실행 가능
  • 코어가 많다고 해서 모든 작업이 자동으로 완전히 병렬화되는 것은 아님.

동시성과 병렬성

  • 동시성

    • 여러 작업이 일정 시간 동안 번갈아 진행되는 방식
  • 병렬성

    • 여러 CPU 코어에서 여러 작업이 실제로 동시에 실행되는 방식

공유 자원과 동기화

  • 여러 스레드가 같은 데이터를 동시에 수정하면 실행 순서에 따라 잘못된 결과가 발생할 수 있음.

  • 이를 경쟁 상태(Race Condition)라고 함.

  • 공유 자원에 동시에 접근하지 못하도록 동기화가 필요함.

  • 예시

    • 스레드 A와 B가 같은 값을 동시에 읽고 수정하면 예상하지 못한 결과가 발생할 수 있음.
    • 뮤텍스(Mutex) 등을 이용하여 한 번에 하나의 스레드만 공유 자원에 접근하도록 제한

멀티태스킹

  • 운영체제의 상태 관리
  • CPU 스케줄링
  • 대기
  • 문맥 교환
  • 위 과정이 반복되면서 여러 프로그램이 동시에 실행되는 것처럼 동작함.

1-4. 운영체제의 메모리 관리

메모리 관리

  • 실행 중인 프로그램이 사용할 RAM 공간을 운영체제가 관리함.
  • 각 프로세스에 필요한 메모리를 할당하고 서로의 메모리를 침범하지 않도록 보호함.

프로세스별 메모리 공간

  • 각 프로세스는 자신만의 메모리 공간을 사용하는 것처럼 동작함.
  • 운영체제가 프로세스 A, B, C 등의 메모리 영역을 관리하고 보호함.

가상 메모리

  • 각 프로세스에 독립적인 가상 주소 공간을 제공하는 방식
  • 프로그램은 실제 RAM의 물리 주소를 직접 사용하는 대신 가상 주소를 사용함.
  • 운영체제와 하드웨어가 가상 주소를 실제 물리 주소와 연결함.

가상 주소와 물리 주소

  • 프로그램이 사용하는 주소 → 가상 주소
  • 실제 RAM의 위치 → 물리 주소
  • MMU(Memory Management Unit)가 주소 변환을 수행함.
  • 운영체제가 관리하는 페이지 테이블을 이용하여 가상 주소를 물리 주소에 연결함. ![alt](
  • 가상 메모리와 물리 메모리를 일정한 크기의 블록으로 나누어 관리하는 단위
  • 프로세스의 가상 페이지를 RAM의 물리 프레임에 연결하여 사용함.

페이지 테이블

  • 가상 페이지와 실제 RAM의 물리 프레임 사이의 대응 관계를 저장함.
  • 운영체제가 프로세스마다 주소 변환 정보를 관리함.

TLB

  • Translation Lookaside Buffer
  • 최근 사용한 가상 주소 → 물리 주소 변환 정보를 빠르게 찾기 위한 캐시
  • 페이지 테이블을 매번 확인하는 비용을 줄여 주소 변환 속도를 높임.
  • TLB 적중 → 빠르게 주소 변환
  • TLB 미스 → 페이지 테이블 확인

페이지 부재(Page Fault)

  • 프로그램이 필요로 하는 페이지가 현재 RAM에 존재하지 않을 때 발생

  • 처리 과정

    • 프로그램이 페이지에 접근
    • RAM에 페이지가 없는 것을 확인
    • 운영체제가 필요한 데이터를 저장장치에서 읽음.
    • RAM에 적재
    • 페이지 테이블 갱신
    • 프로그램 실행 재개

가상 메모리와 저장장치

  • RAM이 부족하면 일부 데이터를 저장장치로 옮겨 공간을 확보할 수 있음.
  • 필요한 데이터가 다시 사용되면 저장장치에서 RAM으로 가져옴.

교체

  • RAM 공간이 부족할 때 기존 페이지 중 일부를 제거하고 필요한 페이지를 가져오는 과정

스왑(Swap)

  • RAM의 데이터를 저장장치로 옮겨 메모리 공간을 확보하는 방식
  • 저장장치는 RAM보다 느리므로 스왑이 많이 발생하면 성능이 크게 저하될 수 있음.

스래싱(Thrashing)

  • RAM 부족으로 페이지를 계속 저장장치와 RAM 사이에서 교체하는 상태
  • 실제 프로그램 실행보다 페이지 교체에 더 많은 시간이 사용되어 시스템이 매우 느려질 수 있음.
  • 교체가 지나치면 스래싱이 발생함.

메모리 부족 관찰

  • 확인할 수 있는 주요 지표

    • 메모리 사용률
    • 디스크 활동
    • 응답 지연
  • RAM 사용률이 높고 디스크 사용이 지속적으로 증가하면서 시스템이 느려진다면 메모리 부족과 스왑 사용을 의심할 수 있음.

메모리 보호

  • 페이지마다 접근 권한을 설정할 수 있음.

  • 예시

    • 읽기(R)
    • 쓰기(W)
    • 실행(X)
  • 프로세스의 메모리 공간을 서로 분리하여 다른 프로세스의 메모리를 임의로 수정하지 못하도록 보호함.


1-5. 장치 드라이버와 입출력 관리

입출력 관리

  • 운영체제는 프로그램과 실제 하드웨어 장치 사이에서 입출력 요청을 관리함.
  • 프로그램이 각 하드웨어의 세부 동작 방식을 직접 처리하지 않아도 되도록 함.

입출력 계층

  • 응용 프로그램
  • 시스템 호출
  • 운영체제의 입출력 계층
  • 장치 드라이버
  • 장치 제어기
  • 실제 장치

장치 드라이버

  • 운영체제와 특정 하드웨어 장치 사이에서 명령을 전달하는 소프트웨어
  • 운영체제의 공통 요청을 각 장치가 이해할 수 있는 방식으로 변환함.
  • 장치별 명령 번역기 역할을 함.

드라이버의 역할

  • 프로그램의 입출력 요청을 운영체제가 받음.
  • 운영체제가 적절한 드라이버를 호출함.
  • 드라이버가 장치에 맞는 명령으로 변환함.
  • 장치가 실제 작업을 수행함.
  • 결과가 다시 운영체제와 프로그램으로 전달됨.

플러그 앤 플레이(Plug and Play)

  • 새로운 장치를 연결했을 때 운영체제가 장치를 식별하고 적절한 드라이버를 선택하여 사용할 수 있도록 설정하는 기능

  • 과정

    • 장치 감지
    • 식별
    • 드라이버 선택
    • 설정

인터럽트(Interrupt)

  • 장치가 작업을 완료했거나 CPU의 처리가 필요할 때 CPU에 이를 알리는 신호
  • CPU가 장치의 상태를 계속 반복해서 확인하지 않아도 됨.
  • 인터럽트가 발생하면 CPU가 필요한 처리를 수행한 뒤 원래 작업으로 돌아감.

폴링(Polling)

  • CPU가 장치의 상태를 반복적으로 확인하는 방식
  • 장치의 작업 완료 여부를 계속 질문하는 것과 비슷함.
  • 단순하지만 반복 확인 과정에서 CPU 자원이 사용될 수 있음.

폴링과 인터럽트 비교

  • 폴링

    • CPU가 반복해서 장치 상태를 확인
  • 인터럽트

    • 장치가 필요한 순간 CPU에 알림
  • 기다리는 동안 CPU는 다른 작업을 수행할 수 있음.

DMA

  • Direct Memory Access
  • 장치와 RAM 사이의 대량 데이터 전송을 CPU가 매번 직접 복사하지 않고 처리하도록 하는 방식
  • CPU가 전송을 설정하면 DMA가 장치 ↔ RAM 사이의 데이터 이동을 담당함.
  • 대량 데이터 전송에서 CPU의 반복 복사 부담을 줄일 수 있음.

입출력 속도 차이

  • CPU와 입출력 장치는 처리 속도가 서로 다름.

  • 운영체제는 속도 차이를 조정하기 위해 여러 방법을 사용함.

  • 버퍼링

    • 데이터를 임시 공간에 모아 처리
  • 캐싱

    • 자주 사용하는 데이터를 빠른 저장 공간에 보관
  • 스풀링

    • 장치가 처리할 작업을 대기열에 저장하여 순서대로 처리

프린터와 스풀링

  • 여러 인쇄 요청이 들어오면 운영체제가 인쇄 작업을 대기열에 저장함.
  • 프린터가 한 작업씩 순서대로 처리함.
  • 프로그램은 인쇄가 모두 끝날 때까지 계속 기다리지 않고 다른 작업을 수행할 수 있음.

인쇄 과정

  • 인쇄 버튼
  • 대기열 등록
  • 드라이버 변환
  • 프린터 전송
  • 출력 완료

장치 문제 진단

  • 장치
  • 연결
  • 인식
  • 대기열
  • 드라이버
  • 순서로 확인하여 문제가 발생한 위치를 찾을 수 있음.

2-1. 파일과 폴더 그리고 경로

파일(File)

  • 데이터를 저장장치에 저장하기 위한 기본 단위
  • 파일 이름과 파일에 저장된 실제 데이터로 구성됨.
  • 문서, 사진, 음악, 프로그램 등 다양한 데이터를 파일로 저장함.

폴더(Folder)

  • 파일과 다른 폴더를 분류하고 정리하기 위한 공간
  • 하나의 폴더 안에 여러 파일과 하위 폴더를 둘 수 있음.

폴더 트리

  • 폴더 안에 다른 폴더가 포함되는 계층 구조

  • 예시

    • 학기

      • 과목

        • 주차

          • 과제.txt
  • 자료가 많아질수록 일정한 계층 구조를 사용하는 것이 관리에 유리함. ![alt](

  • 파일이나 폴더가 저장된 위치를 나타내는 표현
  • 폴더를 순서대로 따라가면서 원하는 파일의 위치를 나타냄.
  • 같은 이름의 파일이라도 서로 다른 폴더에 존재할 수 있으므로 경로를 통해 구분할 수 있음.

절대 경로

  • 파일의 위치를 최상위 위치부터 모두 표시하는 방법

  • 현재 작업 위치와 관계없이 같은 파일을 가리킴.

  • 예시

    • Windows: C:\Users\학생\Documents\과제.txt
    • Linux: /home/student/Documents/과제.txt

상대 경로

  • 현재 위치를 기준으로 파일이나 폴더의 위치를 나타내는 방법

  • 현재 작업 위치에 따라 같은 상대 경로가 다른 파일을 가리킬 수 있음.

  • 예시

    • ./과제.txt
    • ../자료/과제.txt

경로에서 사용하는 표현

  • . → 현재 폴더
  • .. → 상위 폴더
  • Windows는 일반적으로 \를 경로 구분자로 사용
  • Linux/macOS는 /를 경로 구분자로 사용

파일 이름과 확장자

  • 파일 이름 뒤의 확장자는 파일의 종류를 구분하는 데 사용됨.

  • 예시

    • .txt → 텍스트
    • .jpg → 이미지
    • .mp3 → 음악
    • .mp4 → 영상
    • .exe → 실행 파일
  • 확장자만 변경한다고 실제 파일 형식이 변하는 것은 아님.


2-2. 파일 시스템

파일 시스템(File System)

  • 저장장치에 파일과 폴더를 저장하고 관리하기 위한 운영체제의 규칙과 구조
  • 파일의 이름, 위치, 크기, 권한 등의 정보를 관리함.
  • 운영체제가 저장장치의 데이터를 파일과 폴더 형태로 사용할 수 있도록 함.

파일 시스템의 역할

  • 파일 생성과 삭제
  • 파일 읽기와 쓰기
  • 폴더 구조 관리
  • 저장 공간 관리
  • 파일 위치 관리
  • 파일 권한 관리

파일의 메타데이터

  • 파일 자체의 내용이 아니라 파일을 관리하기 위한 정보

  • 예시

    • 파일 이름
    • 파일 크기
    • 생성 시간
    • 수정 시간
    • 소유자
    • 접근 권한

파일과 실제 저장 위치

  • 사용자는 파일 이름과 경로를 이용하여 파일에 접근함.
  • 운영체제와 파일 시스템은 해당 파일의 실제 데이터가 저장장치의 어느 위치에 있는지 관리함.
  • 사용자가 저장장치의 물리적인 위치를 직접 관리할 필요가 없음.

대표적인 파일 시스템

  • NTFS

    • Windows에서 주로 사용
  • FAT32

    • 다양한 운영체제와 장치에서 높은 호환성을 가짐.
  • exFAT

    • USB 메모리나 외장 저장장치 등에 많이 사용
  • ext4

    • Linux에서 널리 사용

파일 시스템 선택

  • 저장장치의 사용 목적에 따라 적절한 파일 시스템이 달라질 수 있음.

  • 고려할 요소

    • 운영체제 호환성
    • 파일 크기
    • 저장장치 크기
    • 권한 및 보안 기능

2-3. 파일 읽기와 쓰기

파일 접근

  • 프로그램이 파일을 사용하려면 운영체제에 파일 접근을 요청함.
  • 응용 프로그램이 저장장치를 직접 제어하는 것이 아니라 운영체제를 통해 접근함.

파일 열기

  • 프로그램이 파일의 경로와 원하는 작업을 운영체제에 전달함.
  • 운영체제가 파일의 존재 여부와 접근 권한 등을 확인함.
  • 문제가 없다면 프로그램이 파일을 사용할 수 있도록 함.

파일 읽기 과정

  • 프로그램에서 파일 읽기 요청
  • 운영체제가 파일 시스템에 요청
  • 파일 시스템이 데이터 위치 확인
  • 저장장치에서 데이터 읽기
  • 메모리로 데이터 전달
  • 프로그램이 데이터 사용

파일 쓰기 과정

  • 프로그램에서 저장 요청
  • 운영체제가 데이터를 전달받음.
  • 파일 시스템이 저장할 위치를 결정함.
  • 저장장치에 데이터 기록
  • 파일 크기와 수정 시간 등의 메타데이터 갱신

버퍼(Buffer)

  • 데이터를 바로 장치에 전달하지 않고 메모리에 임시로 모아두는 공간
  • 작은 데이터를 매번 저장장치에 기록하는 것보다 여러 데이터를 모아서 처리하면 효율적일 수 있음.

캐시(Cache)

  • 자주 사용하는 파일 데이터를 메모리에 보관하여 저장장치에 반복적으로 접근하는 횟수를 줄임.
  • 같은 데이터를 다시 사용할 때 빠르게 접근할 수 있음.

안전한 제거

  • USB 등의 저장장치에 대한 쓰기 작업이 아직 끝나지 않았을 수 있음.
  • 안전한 제거를 사용하면 남아 있는 쓰기 작업을 완료한 후 장치를 분리할 수 있음.
  • 기록 중 장치를 갑자기 제거하면 데이터 손상이나 파일 시스템 오류가 발생할 수 있음.

2-4. 파일 권한과 보안

파일 권한

  • 어떤 사용자나 프로그램이 파일에 어떤 작업을 할 수 있는지 정하는 규칙
  • 운영체제가 파일과 폴더에 대한 접근을 통제함.

기본 권한

  • 읽기(Read)

    • 파일의 내용을 확인할 수 있는 권한
  • 쓰기(Write)

    • 파일의 내용을 수정할 수 있는 권한
  • 실행(Execute)

    • 프로그램이나 파일을 실행할 수 있는 권한

사용자와 권한

  • 운영체제는 사용자 계정을 구분하여 각 사용자에게 서로 다른 권한을 부여할 수 있음.
  • 모든 사용자가 모든 파일에 접근할 수 있도록 하면 중요한 데이터가 변경되거나 삭제될 위험이 있음.

최소 권한 원칙

  • 사용자나 프로그램에는 작업을 수행하는 데 필요한 최소한의 권한만 부여하는 것이 안전함.
  • 필요 이상의 관리자 권한을 사용하면 문제가 발생했을 때 피해 범위가 커질 수 있음.

관리자 권한

  • 시스템 설정 변경이나 중요한 파일 수정 등 일반 사용자보다 많은 작업을 수행할 수 있음.
  • 강력한 권한을 가지므로 필요한 경우에만 사용하는 것이 안전함.

권한과 시스템 보호

  • 일반 프로그램이 운영체제의 중요한 영역을 마음대로 수정하지 못하도록 제한
  • 사용자별 파일 접근 제한
  • 시스템 파일 보호
  • 허용되지 않은 프로그램의 접근 제한

2-5. 삭제와 복구

파일 삭제

  • 파일을 삭제했다고 해서 저장장치에서 데이터가 항상 즉시 완전히 사라지는 것은 아님.
  • 운영체제와 파일 시스템은 해당 파일이 사용하던 공간을 다시 사용할 수 있는 공간으로 표시할 수 있음.

휴지통

  • 일반적인 파일 삭제에서는 파일을 바로 완전히 제거하지 않고 휴지통으로 이동할 수 있음.
  • 사용자가 실수로 삭제한 파일을 복원할 수 있도록 함.

영구 삭제

  • 휴지통을 거치지 않고 삭제하거나 휴지통을 비우면 일반적인 방법으로 복원하기 어려워짐.
  • 그러나 저장 공간이 새로운 데이터로 덮어쓰이지 않았다면 복구 프로그램으로 일부 데이터를 복구할 가능성이 있을 수 있음.

덮어쓰기

  • 삭제된 파일이 사용하던 저장 공간에 새로운 데이터가 기록되는 것
  • 덮어쓰기가 진행될수록 기존 데이터의 복구 가능성이 낮아짐.

삭제 후 주의할 점

  • 중요한 파일을 실수로 삭제했다면 해당 저장장치의 사용을 가능한 한 줄이는 것이 중요함.
  • 새로운 파일을 계속 저장하면 삭제된 데이터 영역이 덮어써질 수 있음.

백업

  • 중요한 데이터를 다른 저장장치나 위치에 복사하여 보관하는 것
  • 파일 손상, 실수로 인한 삭제, 저장장치 고장 등에 대비할 수 있음.

3-1. 사용자 계정과 인증

사용자 계정

  • 운영체제가 사용자를 구분하기 위한 정보
  • 사용자마다 자신의 파일, 설정, 권한 등을 가질 수 있음.

인증(Authentication)

  • 현재 접근하려는 사람이 실제 해당 계정의 사용자인지 확인하는 과정

  • 예시

    • 비밀번호
    • PIN
    • 지문
    • 얼굴 인식

인증과 권한

  • 인증

    • 사용자가 누구인지 확인
  • 권한

    • 인증된 사용자가 무엇을 할 수 있는지 결정
  • 로그인했다고 해서 모든 작업을 수행할 수 있는 것은 아님.

일반 사용자와 관리자

  • 일반 사용자

    • 일상적인 프로그램 실행과 파일 작업 등을 수행
    • 시스템 전체에 영향을 주는 작업은 제한될 수 있음.
  • 관리자

    • 프로그램 설치
    • 시스템 설정 변경
    • 사용자 관리
    • 중요한 시스템 작업 등을 수행할 수 있음.

계정 분리

  • 여러 사용자가 같은 컴퓨터를 사용하더라도 계정을 분리하면 각 사용자의 파일과 설정을 구분하여 관리할 수 있음.
  • 사용자별 접근 권한을 다르게 설정할 수 있음.

3-2. 운영체제와 보안

운영체제 보안

  • 운영체제는 프로그램과 사용자가 시스템 자원에 접근하는 것을 통제함.
  • 중요한 시스템 자원이 임의로 변경되는 것을 방지함.

보호해야 하는 자원

  • CPU
  • 메모리
  • 파일
  • 장치
  • 사용자 정보
  • 시스템 설정

프로세스 격리

  • 각 프로세스가 독립적인 메모리 공간을 사용하도록 관리함.
  • 한 프로그램이 다른 프로그램의 메모리를 임의로 읽거나 수정하는 것을 제한함.
  • 프로그램 오류가 시스템 전체로 확산되는 것을 줄임.

권한 검사

  • 파일이나 장치 등에 접근할 때 해당 작업을 수행할 권한이 있는지 운영체제가 확인함.
  • 권한이 없다면 접근을 거부함.

사용자 모드와 커널 모드

  • 일반 응용 프로그램은 제한된 사용자 모드에서 실행됨.
  • 중요한 시스템 기능은 높은 권한을 가진 커널 모드에서 실행됨.
  • 프로그램은 필요한 기능을 시스템 호출을 통해 운영체제에 요청함. ![alt](
  • 운영체제와 프로그램에서 발견된 오류와 보안 취약점을 수정하기 위해 업데이트를 제공함.
  • 오래된 운영체제를 계속 사용하면 알려진 보안 문제에 노출될 가능성이 커질 수 있음.

안전한 사용

  • 운영체제와 프로그램을 최신 상태로 유지
  • 필요한 경우에만 관리자 권한 사용
  • 출처를 알 수 없는 프로그램 실행 주의
  • 중요한 데이터 백업
  • 계정과 파일의 접근 권한 확인

3-3. 운영체제 문제 진단

문제 진단

  • 컴퓨터가 느리거나 프로그램이 정상적으로 동작하지 않을 때 원인을 단계적으로 확인해야 함.
  • 무조건 재설치하거나 파일을 삭제하기보다 문제 발생 위치를 먼저 파악하는 것이 중요함.

시스템이 느릴 때 확인할 요소

  • CPU 사용률
  • 메모리 사용률
  • 저장장치 사용률
  • 실행 중인 프로세스
  • 시작 프로그램
  • 네트워크 사용량

CPU 사용률이 높은 경우

  • 특정 프로그램이 CPU를 지나치게 사용하고 있는지 확인
  • 불필요한 프로그램 종료
  • 백그라운드 작업 확인

메모리가 부족한 경우

  • 많은 프로그램이나 브라우저 탭이 실행되고 있는지 확인
  • RAM 사용량 확인
  • 스왑이나 페이지 교체가 과도하게 발생하는지 확인
  • 불필요한 프로그램 종료

저장장치가 느린 경우

  • 저장장치 사용률 확인
  • 파일 복사나 업데이트 등의 작업 확인
  • 저장 공간 부족 여부 확인

프로그램이 응답하지 않는 경우

  • CPU를 계속 사용하고 있는지 확인
  • 입출력 작업을 기다리고 있는지 확인
  • 메모리 부족 여부 확인
  • 필요한 경우 프로그램 종료 후 다시 실행

장치가 동작하지 않는 경우

  • 장치 연결 확인
  • 운영체제의 장치 인식 여부 확인
  • 드라이버 상태 확인
  • 작업 대기열 확인
  • 장치 자체의 문제 확인

문제 진단의 기본 원칙

  • 증상 확인
  • 어떤 자원이 부족하거나 문제가 있는지 확인
  • 원인 후보를 좁힘.
  • 한 번에 하나씩 변경
  • 변경 후 결과 확인
  • 필요하면 원래 설정으로 복구

3-4. 운영체제와 자원 관리 종합

alt 운영체제의 핵심 역할

  • 운영체제는 컴퓨터의 여러 자원을 관리하고 응용 프로그램이 안전하게 사용할 수 있도록 중재함.

CPU 관리

  • 여러 프로세스에 CPU 시간을 배분
  • 스케줄링
  • 문맥 교환
  • 멀티태스킹 지원

메모리 관리

  • 프로세스별 메모리 공간 제공
  • 가상 메모리 관리
  • 페이지와 페이지 테이블 관리
  • 메모리 보호
  • RAM 부족 시 페이지 교체와 스왑 수행

파일 관리

  • 파일과 폴더 관리
  • 경로 관리
  • 파일 시스템을 이용한 저장 공간 관리
  • 읽기와 쓰기
  • 접근 권한 관리

장치 관리

  • 장치 드라이버를 이용하여 하드웨어 제어
  • 인터럽트와 DMA 등을 이용하여 효율적으로 입출력 처리
  • 버퍼링, 캐싱, 스풀링 등을 이용하여 장치 간 속도 차이를 조정

보안 관리

  • 사용자 인증
  • 접근 권한 확인
  • 사용자 모드와 커널 모드 분리
  • 프로세스와 메모리 보호
  • 중요한 시스템 자원 보호

운영체제가 없다면

  • 프로그램이 CPU 사용을 직접 조정해야 함.
  • 프로그램이 메모리 위치를 직접 관리해야 함.
  • 각 프로그램이 장치마다 서로 다른 제어 방법을 구현해야 함.
  • 파일 저장 구조와 접근 권한도 직접 처리해야 함.
  • 여러 프로그램을 동시에 안전하게 실행하기 어려워짐.

운영체제의 의미

  • 단순히 프로그램을 실행하는 소프트웨어가 아니라 CPU, 메모리, 저장장치, 파일, 입출력장치 등의 자원을 통합적으로 관리하는 핵심 시스템 소프트웨어
  • 하드웨어의 복잡한 세부 사항을 응용 프로그램에서 직접 처리하지 않아도 되도록 공통된 사용 환경을 제공함.
  • 여러 프로그램과 사용자가 컴퓨터의 자원을 효율적이고 안전하게 사용할 수 있도록 관리함.

확인 질문

1. 음악을 들으며 사진을 찍을 떄 OS의 역할은?

  • 여러 작업에 CPu와 메모리 자원을 배정하고 각 작업이 충돌하지 않게 관리

2. 부팅 다섯 단계를 순서대로 배열해 보세요

  • 펌웨어 점검 -> 부팅장치 -> 부트 로더 -> 커널 -> 로그인

3. RAM 부족부터 지연까지 화살표로 설명해 보세요

  • RAM 부족 -> 저장장치의 페이지 파일 사용 -> 페이지 교환 증가 -> 응답 지연

4. 인쇄 버튼부터 종이 출력까지의 경로는?

  • 문서 앱 -> 운영체제 -> 인쇄 대기열 -> 드라이버 -> 프린터

5. 과제 파일의 경로를 설명해보세요.

  • 학기, 과목, 주차, 과제.txt
  • 절대경로: 최상위 위치부터 파일까지의 천제 경로
  • 상대경로: 현재 위치를 기준으로 나타낸 경로

6. 편집본, 배포본, 표 데이터의 형식은?

  • 편집본: 수정 가능한 원본 형식
  • 배포본: PDF와 같은 배포용 형식
  • 표 데이터: 표 구조에 맞는 형식을 사용

7. 자신의 과제 파일명을 규칙에 맞게 바꿔보세요

  • 260928_컴퓨터개론_4주차_v03

8. USB 복사, 폴더 이동, 실수, 삭제를 어떻게 확인할까?

  • 복사 - 원본과 사본이 모두 있는지 확인
  • 이동 - 파일의 위치가 변경되었는지 확인
  • 삭제 - 휴지통이나 삭제된 위치 확인

9. 이름 모르는 지난주 PDF를 찾는 세 조건은?

  • 파일 형식(PDF), 수정 날짜, 파일 크기

10. 팀 과제 폴더의 대상별 권한 정하기

  • 팀원: 읽고 쓰기
  • 뷰어: 읽기

11. 새 앱 설치 전 다섯 가지 점검은?

  • 출처 및 게시자, 요청 권한, 부가프로그램, 저장공간, 호환성

12. 과제 폴더의 3-2-1 계획을 그려 보세요.

  • 원본 1개 복사본 2개 총 3개의 파일을 2개의 저장 매체에 각각 1개씩 저장.

13.멈춤부터 안전한 해결까지 순서를 말해 보세요.

  • 증상 확인 후 CPU, 메모리, 디스크, 네트워크 사용량 확인 -> 문제를 일으키는 프로세스 확인 - > 안전하게 종료(필요시)