
정보처리기사 필기를 메타코드 강의와 함께 공부하려고 합니다.
오늘 공부할 강의는 4강: 프로그래밍 언어활용과 5강 : 정보 시스템 구축 관리에 해당하는 부분입니다.
1. 컴퓨터 하드웨어 구성요소
1. CPU
2. RAM
3. DISK
4. I/O Device
운영체제와 소프트웨어의 기초가 되는 컴퓨터 하드웨어 구성요소에는 CPU, RAM, DISK, I/O Device가 있습니다.
CPU는 컴퓨터의 모든 연산과 명령을 처리하는 핵심 부품이고, RAM은 컴퓨터에서 실행중인 프로그램이 빠르게 접근할 수 있도록 데이터를 임시로 저장하는 공간입니다.
디스크는 컴퓨터의 데이터를 장기적으로 저장하는 공간으로, 디스크에서 램으로 데이터를 불러오면 CPU가 처리를 하게 됩니다.
입출력 장치는 컴퓨터와 외부를 연결하는 모든 장치를 의미합니다.

앞에서 말한 요소들이 긴밀하게 연결되어 작동하면서 컴퓨터 시스템을 구성하게 됩니다.
네트워크 기초로 넘어가면, 운영체제는 컴퓨터 하드웨어와 소프트웨어의 자원을 관리하고 사용자와 컴퓨터간의 상호작용을 쉽게 해주는 역할을 하는 시스템 소프트웨어 입니다.
운영체제는 프로세스 관리, 자원 관리, 입출력 관리, 사용자 인터페이스 제공과 같은 역할을 담당합니다.
위의 사진과 같이, 운영체제는 기능에 따라 크게 제어 프로그램과 처리 프로그램으로 나눌 수 있는데 제어 프로그램은 시스템을 관리하고 하드웨어를 제어하는 역할을 합니다.
제어 프로그램은 위와 같이 3가지로 나뉘는데, 프로그램과 시스템의 작동상태를 감시하는 감시프로그램, 작업 스케줄링과 자원할당을 담당하는 작업 제어 프로그램, 데이터의 전송과 갱신을 담당하는 데이터 관리 프로그램이 있습니다.
처리프로그램도 3가지로 나뉘며, 언어번역, 서비스, 문제 프로그램이 이에 해당합니다.
2. 운영체제 구성요소

운영체제의 구성요소로 커널과 쉘에 대해서 알아보겠습니다.
하드웨어와 소프트웨어 간의 상호작용을 관리하는 커널은 운영체제의 핵심으로 하드웨어와 직접 상호 작용하며 시스템의 모든 자원을 관리합니다.
커널은 프로세스의 생성과 종료를 관리하거나, 기억 장치 자원을 할당하거나 회수하여 자원을 관리하거나, 데이터를 저장하는 파일 시스템을 관리하는 역할을 담당합니다.
쉘은 바깥에 위치한 사용자와 운영체제가 상호작용할 수 있도록 하는 명령어 해석기이자 인터페이스에 해당합니다.
사용자가 명령어를 입력하면 해석하고 실행하는 역할을 합니다.
3. 메모리 자원관리

메모리 자원관리는 메모리를 효율적으로 사용하고 여러 프로세스들이 필요한 메모리를 적절하게 할당받아 실행될 수 있도록 관리하는 것을 의미합니다.
자원이 한정되어 있으므로 여러 프로세스가 효율적으로 사용할 수 있도록 교통 정리가 필요하기 때문입니다.
이를 크게 4가지로 나누면, 반입기법, 배치기법, 할당기법, 교체 기법이 있습니다.
반입기법은 프로세스를 주기억장치, 즉 메모리에 언제 들여놓을지 결정하는 방법을 의미합니다. 반입 기법의 방식으로는 두가지가 있는데, 요구반입과 예상 반입이 있습니다.
배치기법은 프로세스를 어디에 배치할지 결정하는 방법을 의미합니다. 배치 기법은 3가지 방식이 활용되는데, 최초적합 방식, 최적 적합 방식, 최악 적합 방식이 있습니다.
할당 기법은 프로세스를 주기억 장치에 어떻게 할당시킬지 결정하는 방법을 의미합니다. 할당기법은 연속 메모리 할당과 분산 메모리 할당으로 나뉩니다.
교체 기법은 주기억 장치에 있는 프로세스 중에 어떤 프로세스를 제거할지 결정하는 방법입니다.

할당 기법에서 분산 메모리 할당 방식은 프로그램의 일부가 페이지나 세그먼트 단위로 분산시켜 배치하는 방법입니다.
이 때, 물리적 주소를 고정된 페이지로 분할하는 페이징 기법, 물리적 주소를 동적인 크기의 세그먼트로 분할하는 세그멘테이션 기법이 사용됩니다.
여기에서 페이징은 물리적인 주소를 고정된 크기로 분할하는 메모리 관리 기법입니다.
페이징 기법의 주요 개념을 살펴보면, 페이지, 프레임, 페이징 테이블이 있는데, 페이지는 프로그램의 논리적 주소 공간을 동일 크기의 블록으로 나눈 것을 뜻하고, 프레임은 물리적 메모리를 페이지와 동일한 크기의 블록으로 나눈 것을 뜻하며, 페이징 테이블은 논리 주소를 물리 주소로 변환하는 것입니다.
각 프로세스마다 하나의 페이지 테이블을 가지는데, 가상 주소 페이지에 잇는 데이터가 물리 주소에 실제 할당될 수 있게 매핑을 해주는 역할을 페이징 테이블이 수행하게 됩니다.
작동 방식은 위와 같이, 프로세스가 생성되면 운영체제가 해당 프로세스를 동일한 크기의 작은 단위, 즉 페이지 만큼의 크기로 잘게 쪼개어 번호를 붙입니다. 시스템의 물리적인 메모리도 프레임이라는 고정 크기의 블록들로 나뉩니다.
페이지와 프레임의 크기는 동일한데, 운영체제는 페이지 테이블을 사용하여 각 페이지가 어느 프레임에 저장되어 있는지를 관리하고, 프로세스가 메모리에 접근할 때 운영체제는 페이징 테이블을 참조해서 논리주소를 물리주소로 변환시킵니다.
이후 개별페이지는 페이징 테이블을 통해 물리공간에 위치한 동일 크기의 프레임에 저장됩니다.
4. 프로세스
프로세스
실행중인 프로그램의 동작단위
프로세스는 실행 중인 프로그램의 동작 단위로 CPU나 메모리 등의 자원을 할당받아서 작업을 수행합니다.
프로세스의 관리를 위해 운영체제는 프로세스 제어 블록이라는 자료구조를 사용합니다.
PCB는 프로세스에 대한 중요한 정보들을 저장하고 있는데, 프로세스가 생성될 때 만들어지고 종료될 때 제거됩니다.
프로세스는 실행되는 동안 시간에 따라 상태변화가 발생하게 됩니다.

5가지의 단계로 상태변화가 발생하는데, 생성, 준비, 대기, 실행, 종료 단계를 거칩니다.
생성 단계에서 프로세스가 생성되고, 준비 단계에서 CPU가 할당받기 위해 대기하게 되고, 실행 단계에서 CPU를 할당받아 실행하게 됩니다. CPU를 양보하고 대기하는 대기상태를 거쳐, 종료 상태에서 실행을 마치고 종료가 이루어 집니다.
프로세스가 준비 상태에서 자원이 할당되어 실행 상태로 변화하는 것을 Dispatch라고 하며 반대는 Time run out입니다.
이 과정에서 레지스터를 통해서 현재 실행중인 프로세스의 상태를 저장하게 됩니다.
이 5가지 단계를 통해 운영체제는 여러가지 프로세스들을 효율적으로 관리하고 시스템의 자원을 적절하게 분배할 수 있습니다.
5. 스레드

스레드는 프로세스에서 실행되는 가장 작은 실행 단위를 의미합니다.
특징은 1개의 프로세스가 여러개의 스레드를 가질 수 있으며, 스레드는 프로세스의 일부로서 한 프로세스의 자원을 공유하면서 동시에 여러 작업을 수행할 수 있습니다.
스레드를 통해서 운영체제의 성능과 응용 프로그램의 처리율을 올릴 수 있습니다.
스레드는 생성 주체에 따라서, 커널 수준 스레드와 사용자 수준 스레드로 구분되는데, 커널 수준 스레드는 운영체제에 의해서 운영되며 커널이 직접 관리하기 때문에 안정적이나 생성과 관리에 더 많은 시간이 소요될 수 있습니다.
생성자 수준 스레드는 사용자가 만든 라이브러리를 활용해서 스레드를 운영하는데, 커널 모드의 전환 없이 스레드 교환이 바로 가능해 오버헤드가 적다는 장점이 습니다.
6. 프로세스 스케줄링
CPU는 다양한 프로세스들을 매우 빠른 속도로 짧은 시간동안 번갈아가며 실행하고 있기 때문에, 이를 동시에 실행되는 것과 같이 보이게 하려면 효율적인 우선순위 결정이 필요합니다.
이를 위한 프로세스 스케줄링은 2가지로 나뉠 수 있는데, 아래와 같습니다.
선점형 스케줄링
|
비선점형 스케줄링
|
현재 실행 중인 프로세스가 강제 중단되고 다른 프로세스가 CPU를 차지할 수 있는 방식 |
한번 cpu를 점유한 프로세스는
작업을 모두 끝낼 때까지 CPU를 독점하는 방식 |
선점형 스케줄링 방식의 주요 알고리즘으로는 SRT, ROUND ROBIN이 있습니다.
SRT는 남은 실행 시간이 가장 짧은 프로세스에 CPU를 할당하는 방식으로 선점형 방식이므로, 새 프로세스가 생길 때마다 실행 중인 프로세스와 남은 실행시간을 비교해가며 교체를 수행하게 됩니다.
ROUND ROBIN은 각 프로세스에 동일한 우선 순위를 가지고 일정 시간동안 번갈아 가면서 CPU를 할당하는 방식입니다. 라운드 로빈 방식은 각 프로세스에 공평한 실행 기회를 제공하면서 효율적인 CPU 사용을 가능하게 합니다.
비선점형 스케줄링 방식의 주요 알고리즘으로는 FCFS, SJF, HRN이 있습니다.
FCFS는 도착한 순서대로 프로세스를 처리하는 방식이지만, 뒤에 있는 프로세스들이 모두 대기해야 하기 때문에 시스템 전체의 응답속도가 느려질 수 있으며 이를 컨보이 효과라고 합니다.
SJF는 실행 시간이 짧은 순서대로 CPU에 할당을 하는데 이렇게 되면 평균 대기 시간과 반환 시간을 줄일 수 있지만, 긴 프로세스의 실행이 계속 미뤄지는 기아 현상이 발생할 수 있습니다.
HRN 방식은 대기시간과 서비스시간을 고려하여 우선순위를 결정하는데, 대기시간과 서비스시간을 더한 값을 서비스 시간으로 나누어 우선순위를 결정합니다. 이 비율이 가장 높은 프로세스가 높은 우선 순위를 가지게 됩니다.

위에서 정리한 필기는 아래의 링크에 있는 '메타코드'의 '정보처리기사 필기 환급챌린지 | 합격 인증 시 100% 환급' 강의를 수강하면서 정리한 내용입니다.
마지막 주차를 남겨놓고 있는데, 마지막 주차에는 정보처리기사 필기 기출 문제를 공부할 예정입니다.
이전에는 그냥 읽고 넘겼던 부분들이 강의를 듣고 직접 정리해보면서 중요한 부분 위주로 기억에 남게 되는 것 같습니다.
정보처리기사 필기 시험 접수가 1월인데, 2025년 1회 기사 시험에 합격하려면 지금부터 공부가 필요합니다.
정보처리기사 공부기간이 얼마나 걸리는지 궁금해서 찾아보았는데, 합격을 위한 공부기간은 짧게, 그러나 집중해서 공부한다면 단기간 합격이 가능할 것 같습니다.
아래 강의들은 제가 현재 수강하고 있는 메타코드 정보 처리기사 필기 강의입니다.
10시간내로 빠르게 공부하고 싶은 분들에게 추천하는 강의이고, 강의를 들으면서 저절로 공부가 되는 효과도 있습니다.
2025 정보처리기사 필기 합격 올인원
metacodes.co.kr
'메타코드' 카테고리의 다른 글
[ 정보처리기사 필기 강의 ] 메타코드 강의 후기_5강 및 6강 : 필기 기출 문제 풀이 (0) | 2024.12.29 |
---|---|
[ 정보처리기사 필기 강의 ] 메타코드 강의 후기_3강 : 데이터베이스 구축 - 데이터 모델링 및 설계 & 4강 : 프로그래밍 언어 활용 - 라이브러리 활용 (2) | 2024.12.15 |
[ 정보처리기사 필기 정리 ] 메타코드 강의 후기_2강 : 소프트웨어 개발 - 인터페이스 구현 & 3강 : 절차형 SQL 작성 (1) | 2024.12.08 |
[ 정보처리기사 필기 ] 메타코드 강의 후기_1강 : 소프트웨어 설계 (0) | 2024.12.01 |
댓글