운영체제는 컴퓨터 시스템의 중심에서 하드웨어를 관리하고 응용프로그램이 원활하게 실행되도록 돕는 중요한 소프트웨어입니다. 이번 포스팅에서는 운영체제의 기본 개념과 주요 구성 요소인 기억장치와 시스템 소프트웨어에 대해 알아보겠습니다.
기억장치는 데이터를 일시적 또는 영구적으로 저장하는 장치로, 다음과 같은 종류가 있습니다.
종류 | 설명 |
ROM (Read Only Memory) | - 읽기만 가능한 읽기 전용 메모리 - 비휘발성 메모리 - 종류 : mask-ROM, PROM, EPROM, EEPROM |
RAM (Random Access Memory) | - 기억장소를 임의로 접근할 수 있는 메모리 - 읽고 쓰기가 가능한 휘발성 메모리 - SRAM : 전원이 공급되는 중에 내용이 사라지지 않음 (캐시 메모리로 사용) - DRAM : 일반적인 주기억장치로, 일정시간이 지나면 내용이 사라지는 RAM |
종류 | 설명 |
로더 | 어떤 프로그램을 실행하기 위해 해당 목적 프로그램을 메모리에 적재하고 배치 주소를 옮기는 프로그램 |
링커 | 프로그램 구현 시 목적파일(Object File)을 실행파일 (Execute File)로 변환해 주는 프로그램 |
유틸리티 | 컴퓨터 하드웨어, 운영체제, 응용 소프트웨어를 관리하는 데 도움을 주는 프로그램 |
번역기 (컴파일러, 어셈블러) | 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 프로그램 |
장치 드라이버 | 특정 하드웨어나 장치를 제어하기 위한 커널의 일부분으로 동작하는 프로그램 |
운영체제 | CPU 메모리와 하드디스크 등의 하드웨어를 관리하며, 내 컴퓨터와 다른 컴퓨터들이 대화할 수 있도록 도와주는 등 많은 일들을 해주는 프로그램 |
종류 | 설명 |
감시 프로그램 (Supervisor Program) |
각종 프로그램의 실행과 시스템 전체의 작동 상태를 감시/감독하는 프로그램 |
작업관리 프로그램 (Job Control Program) |
연속 처리를 위한 스케줄 및 시스템 자원 할당 등 담당 |
데이터 관리 프로그램 (Data Control Program) |
주기억/보조기억장치 사이의 자료전송, 파일의 조작 및 처리, 입출력 자료와 프로그램 간의 논리적 연결 등 처리할 수 있도록 관리 |
운용 기법 | 설명 |
일괄 처리 시스템 (Batch Processing System) | - 초기 운영체제의 형태로 여러 작업을 한 번에 묶어서 처리한다. |
실시간 처리 시스템 (Real Time Processing) | - 요청한 실행을 즉시 실행하는 기법 |
다중 프로그래밍 시스템 (Multi Programming) | - 사용자 입장에서는 하나의 CPU이지만 동시에 여러 프로그램이 실행되는 것 처럼 보인다. |
시분할 시스템 (Time Sharing) | - 타임 슬라이스 또는 타임 퀀텀이라 부르는 일정 작업 시간 동안 작업 실행 |
다중 처리 시스템 (Multi-Processing) | - 여러 개의 CPU를 통하여 동시에 여러 개의 작업을 처리하는 운용 기법 |
다중 모드 시스템 (Multi-Mode) | - 일괄 처리, 다중 프로그래밍, 시분할, 다중 처리, 실시간 처리시스템을 모두 혼용하여 사용 |
분산 처리 시스템 (Distribute Processing) | - 둘 이상의 독립된 시스템이 통신으로 연결되고 상호작용하는 약결합 방식 |
기준 | 설명 |
처리량 (Throughput) | - 일정 시간 내에 시스템이 처리하는 일의 양 |
반환시간 (Turnaround Time) | - 요청한 작업에 대하여 결과를 돌려줄 때까지 소요되는 시간 (대기시간 + 실행시간 + 응답시간) |
신뢰도 (Reliability) | - 작업의 결과가 얼마나 정확하고 믿을 수 있는가의 기준 |
사용 가능도 (Avaliability) | - 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도 |
유닉스(Unix) 구성 (★)
구성 | 설명 |
커널 (Kernel) | - 하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 역할 담당 - CPU 스케줄링, 기억장치 관리, 파일 관리, 입출력 관리, 프로세스 간 통신, 데이터 전송 및 변환 등 여러 가지 기능 수행 |
쉘 (Shell) | - 명령어 해석기 - 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기 |
유틸리티 프로그램 (Utility Program) | - 일반 사용자가 작성한 응용 프로그램을 처리하는 데 사용 - 에디터, 컴파일러, 인터프리터, 디버거 등 |
Unix 파일 시스템의 구조 (★)
구조 | 설명 |
부트블록 | 부팅 시 필요한 코드를 저장하고 있는 블록 |
슈퍼블록 | 전체 파일 시스템에 대한 정보를 저장하고 있는 블록 |
i-node 블록 | 각 파일이나 디렉터리에 대한 모든 정보를 저장하고 있는 블록 |
데이터 블록 | 실제 파일에 대한 데이터가 저장된 블록 |
파일 접근 권한 확인 예시
$ 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
위 출력에서 각 필드의 의미는 다음과 같습니다.
파일 권한을 보면 -rw-r--r--와 같은 형식으로 되어 있습니다.
파일 권한 변경 예시
$ chmod 664 file1.txt
$ chmod +x script.sh
$ chmod -R u+rwx directory
umask 설정 예시
$ umask
0022
기본 umask 값 0022는 새로 만들어지는 파일의 기본 권한을 644 (rw-r--r--)로 설정합니다.
$ umask 0002
소유자 변경 예시
$ chown newuser file1.txt
$ chown -R newuser directory
위 예제들을 통해 파일 접근 권한을 확인하고 변경하는 방법을 이해할 수 있도록 합시다.
이번 포스팅에서는 운영체제의 기본 개념과 기억장치 및 시스템 소프트웨어에 대해 알아보았습니다. 운영체제는 컴퓨터 시스템의 효율성과 안정성을 높이는 중요한 역할을 하며, 다양한 기능과 구성 요소들을 통해 복잡한 작업을 관리합니다.
2024년에 정보처리기사 따기 위해 노력하는 모두에게 행운을 빕니다!