상세 컨텐츠

본문 제목

[정보처리기사 실기 공부] 운영체제 기초

카테고리 없음

by 소란한소란 2024. 5. 28. 20:49

본문

728x90

운영체제 기초: 기억장치와 시스템 소프트웨어

운영체제는 컴퓨터 시스템의 중심에서 하드웨어를 관리하고 응용프로그램이 원활하게 실행되도록 돕는 중요한 소프트웨어입니다. 이번 포스팅에서는 운영체제의 기본 개념과 주요 구성 요소인 기억장치와 시스템 소프트웨어에 대해 알아보겠습니다.

 


기억장치 종류

기억장치는 데이터를 일시적 또는 영구적으로 저장하는 장치로, 다음과 같은 종류가 있습니다.

기억장치 종류

  • 레지스터
    • 중앙처리장치(CPU) 내부에 있는 기억장치로, 접근 시간이 CPU의 처리 속도와 비슷합니다.
  • 캐시 메모리
    • CPU가 주기억장치에 접근할 때 속도 차이를 줄이기 위해 사용됩니다.
    • 실행 중인 프로그램의 명령어와 데이터를 저장합니다.
  • 주기억장치
    • CPU가 직접 데이터를 읽고 쓸 수 있는 장치로, 레지스터나 캐시 메모리보다 기억 용량이 큽니다.
    • 종류로는 RAM(Random Access Memory)과 ROM(Read-Only Memory)이 있습니다.
종류 설명
ROM (Read Only Memory) - 읽기만 가능한 읽기 전용 메모리

- 비휘발성 메모리

- 종류 : mask-ROM, PROM, EPROM, EEPROM
RAM (Random Access Memory) - 기억장소를 임의로 접근할 수 있는 메모리

- 읽고 쓰기가 가능한 휘발성 메모리

- SRAM : 전원이 공급되는 중에 내용이 사라지지 않음
(캐시 메모리로 사용)

- DRAM : 일반적인 주기억장치로, 일정시간이 지나면 내용이 사라지는 RAM
  • 보조기억장치
    • 주기억장치에 비해 접근 시간은 느리지만 기억 용량이 큽니다.
    • HDD, SSD, CD, USB, 플로피 디스크 등이 있습니다.
  • 연관 메모리
    • 주소가 아닌 기억된 내용의 일부를 이용해 접근할 수 있는 기억장치입니다.

시스템 소프트웨어 종류

  • 시스템 소프트웨어는 응용 소프트웨어를 실행하기 위한 플랫폼을 제공하며, 컴퓨터 하드웨어를 동작시키고 접근하게 합니다. 종류로는 운영체제(OS), 장치 드라이버, 유틸리티 프로그램 등이 있습니다.
종류 설명
로더 어떤 프로그램을 실행하기 위해 해당 목적 프로그램을
메모리에 적재하고 배치 주소를 옮기는 프로그램
링커 프로그램 구현 시 목적파일(Object File)을
실행파일 (Execute File)로 변환해 주는 프로그램
유틸리티 컴퓨터 하드웨어, 운영체제,
응용 소프트웨어를 관리하는 데 도움을 주는 프로그램
번역기 (컴파일러, 어셈블러) 특정 프로그래밍 언어로 쓰여 있는
문서를 다른 프로그래밍 언어로 옮기는 프로그램
장치 드라이버 특정 하드웨어나 장치를 제어하기 위한
커널의 일부분으로 동작하는 프로그램
운영체제 CPU 메모리와 하드디스크 등의
하드웨어를 관리하며, 내 컴퓨터와
다른 컴퓨터들이 대화할 수 있도록
도와주는 등 많은 일들을 해주는 프로그램

시스템 소프트웨어의 구성

  • 제어 프로그램 (★)
종류 설명
감시 프로그램
(Supervisor Program)
각종 프로그램의 실행과 시스템 전체의 작동 상태를
감시/감독하는 프로그램
작업관리 프로그램
(Job Control Program)
연속 처리를 위한 스케줄 및 시스템 자원 할당 등 담당
데이터 관리 프로그램
(Data Control Program)
주기억/보조기억장치 사이의 자료전송, 파일의 조작 및 처리,
입출력 자료와 프로그램 간의 논리적 연결 등
처리할 수 있도록 관리

처리 프로그램

  • 서비스 프로그램 (Service Program)
  • 문제 프로그램 (Problem Program)
  • 언어 번역 프로그램(Language Translator Program)

운영체제

  • 운영체제는 응용 프로그램이 실행되는 과정에서 하드웨어들을 제어하여 응용프로그램을 실행하고 실행 결과를 보일 수 있도록 컴퓨터 내부 동작을 관리하는 소프트웨어

운영체제의 기능

  • 프로세스 관리
    • 프로세스를 생성하고 실행을 제어, 관리하는 기능
  • 메모리 관리
    • 프로세스가 실행될 수 있도록 메모리 공간을 할당하고 회수하는 기능
  • 파일 시스템 관리
    • 파일을 보조기억장치에 저장하고 파일 시스템을 운영하는 기능
  • 입출력 시스템 관리
    • 컴퓨터 시스템에서의 입력과 출력을 관리하는 기능
  • 보안기억장치 관리
    • 보조기억장치의 공간을 할당하고 관리하는 기능
  • 네트워킹
    • 컴퓨터 통신에 필요한 제어 관리 기능
  • 정보 보안 관리
    • 사용자 인증 및 실행 권한 관리
  • 명령해석
    • 사용자가 운영체제에 전달하는 명령을 해석하고 관련 함수를 실행시키는 기능

운영체제 운용 기법

운용 기법 설명
일괄 처리 시스템 (Batch Processing System) - 초기 운영체제의 형태로 여러 작업을 한 번에
묶어서 처리한다.
실시간 처리 시스템 (Real Time Processing) - 요청한 실행을 즉시 실행하는 기법
다중 프로그래밍 시스템 (Multi Programming) - 사용자 입장에서는 하나의 CPU이지만 동시에 여러 프로그램이 실행되는 것 처럼 보인다.
시분할 시스템 (Time Sharing) - 타임 슬라이스 또는 타임 퀀텀이라 부르는 일정 작업 시간 동안 작업 실행
다중 처리 시스템 (Multi-Processing) - 여러 개의 CPU를 통하여 동시에
여러 개의 작업을 처리하는 운용 기법
다중 모드 시스템 (Multi-Mode) - 일괄 처리, 다중 프로그래밍, 시분할, 다중 처리, 실시간 처리시스템을 모두 혼용하여 사용
분산 처리 시스템 (Distribute Processing) - 둘 이상의 독립된 시스템이 통신으로 연결되고
상호작용하는 약결합 방식

운영체제 성능 평가 기준

기준 설명
처리량 (Throughput) - 일정 시간 내에 시스템이 처리하는 일의 양
반환시간 (Turnaround Time) - 요청한 작업에 대하여 결과를 돌려줄 때까지 소요되는 시간
(대기시간 + 실행시간 + 응답시간)
신뢰도 (Reliability) - 작업의 결과가 얼마나 정확하고 믿을 수 있는가의 기준
사용 가능도 (Avaliability) - 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도

주요 운영체제

  • 윈도우(Windows)
    • 마이크로소프트사가 개발한 운영체제로, GUI를 제공하며 선점형 멀티태스킹 방식을 사용합니다.
    • 자동감지 기능(Plug and Play)과 OLE(Object Linking and Embedding)를 제공합니다.
  • 리눅스(Linux)
    • 리누스 토발즈가 개발한 오픈소스 유닉스 호환 운영체제입니다.
    • 다중 사용자 시스템, 오픈소스, 다양한 파일 시스템, 이식성, 유연성, 확장성이 특징입니다.
    • 장점: 유닉스와 호환, 안정적, 보안성, 풍부한 개발 환경
    • 단점: 기술지원 부족, 숙련된 기술 필요, 한글 입출력의 어려움
  • 유닉스(Unix) (★)
    • AT&T 벨 연구소가 개발한 공개형 오픈소스 운영체제입니다.
    • 시분할 시스템을 위해 설계되었으며, C언어로 작성되어 이식성과 호환성이 높습니다.
    • 네트워킹 기능이 풍부하여 통신망 관리용 운영체제로 적합합니다.

유닉스(Unix) 구성 (★)

유닉스 구성

구성 설명
커널 (Kernel) - 하드웨어를 보호하고, 프로그램과 하드웨어
간의 인터페이스 역할 담당


- CPU 스케줄링, 기억장치 관리, 파일 관리,
입출력 관리, 프로세스 간 통신, 데이터 전송 및 변환 등
여러 가지 기능 수행
쉘 (Shell) - 명령어 해석기

- 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기
유틸리티 프로그램 (Utility Program) - 일반 사용자가 작성한 응용 프로그램을 처리하는 데 사용

- 에디터, 컴파일러, 인터프리터, 디버거 등

 

Unix 파일 시스템의 구조 (★)

구조 설명
부트블록 부팅 시 필요한 코드를 저장하고 있는 블록
슈퍼블록 전체 파일 시스템에 대한 정보를 저장하고 있는 블록
i-node 블록 각 파일이나 디렉터리에 대한 모든 정보를 저장하고 있는 블록
데이터 블록 실제 파일에 대한 데이터가 저장된 블록

 

  • 파일 디스크립터(FD, File Descriptor)
    • 특징
      • 유닉스 시스템에서 프로세스가 파일들을 접근할 때 이용
      • 파일 제어 블록(File Control Block)이라고도 한다.
      • 파일 관리를 위해 시스템이 필요로 하는 정보를 가지고 있다.
    • 정보
      • 파일 이름 및 파일 크기
      • 보조기억장치에서의 파일 위치 등
  • POSIX(Portable Operating System Interface)
    • 이식 가능한 운영체제 인터페이스
  • MacOS
    • 애플사가 개발한 유닉스 기반의 운영체제

Unix 파일 시스템과 권한 관리

  • 파일 접근 권한을 ls -al 명령어로 확인할 수 있습니다.

파일 접근 권한 확인 예시

$ ls -al

 

출력 예시

drwxr-xr-x  2 user group 4096 May 28 10:00 directory
-rw-r--r--  1 user group  123 May 28 10:00 file1.txt
-rwxr-xr-x  1 user group  456 May 28 10:00 script.sh

 

위 출력에서 각 필드의 의미는 다음과 같습니다.

  1. 첫 번째 열: 파일 유형과 권한
  2. 두 번째 열: 링크 수
  3. 세 번째 열: 파일 소유자
  4. 네 번째 열: 파일 그룹
  5. 다섯 번째 열: 파일 크기
  6. 여섯 번째, 일곱 번째 열: 마지막 수정 날짜
  7. 여덟 번째 열: 파일 이름

파일 권한을 보면 -rw-r--r--와 같은 형식으로 되어 있습니다.

  1. 첫 번째 문자: 파일 유형 (-: 파일, d: 디렉터리)
  2. 다음 세 문자: 소유자 권한 (읽기, 쓰기, 실행)
  3. 다음 세 문자: 그룹 권한 (읽기, 쓰기, 실행)
  4. 마지막 세 문자: 기타 사용자 권한 (읽기, 쓰기, 실행)

 

  • chmod 명령어로 권한을 변경할 수 있습니다.

파일 권한 변경 예시

  • file1.txt 파일의 권한을 rw-rw-r--로 변경하려면?
$ chmod 664 file1.txt

 

 

  • script.sh 파일의 실행 권한을 추가하려면?
$ chmod +x script.sh
  • directory 디렉터리와 그 내부의 모든 파일 및 디렉터리에 대해 읽기, 쓰기, 실행 권한을 소유자에게 부여하려면?
$ chmod -R u+rwx directory

 

  • umask를 통해 앞으로 만들어질 파일의 기본 권한을 설정할 수 있으며, chown 명령어로 파일의 소유주를 변경할 수 있습니다.

umask 설정 예시

  • 현재 umask 값을 확인하려면?
$ umask
0022

 

기본 umask 값 0022는 새로 만들어지는 파일의 기본 권한을 644 (rw-r--r--)로 설정합니다.

  • umask 값을 0002로 변경하여 새 파일의 기본 권한을 664로 설정하려면?
$ umask 0002

 

소유자 변경 예시

  • file1.txt 파일의 소유자를 newuser로 변경하려면?
$ chown newuser file1.txt
  • directory 디렉터리와 그 내부의 모든 파일 및 디렉터리의 소유자를 newuser로 변경하려면?
$ chown -R newuser directory

 

위 예제들을 통해 파일 접근 권한을 확인하고 변경하는 방법을 이해할 수 있도록 합시다.


이번 포스팅에서는 운영체제의 기본 개념과 기억장치 및 시스템 소프트웨어에 대해 알아보았습니다. 운영체제는 컴퓨터 시스템의 효율성과 안정성을 높이는 중요한 역할을 하며, 다양한 기능과 구성 요소들을 통해 복잡한 작업을 관리합니다.
2024년에 정보처리기사 따기 위해 노력하는 모두에게 행운을 빕니다!

 

728x90