티스토리 뷰
운영체제
- 운영체제는 컴퓨터 하드웨어와 응용 프로그램 간의 인터페이스 역할을 하며 CPU, 메모리 같은 컴퓨터 자원을 관리하고 사용자에게 편의를 제공함
하드웨어
- 연산을 위한 기본 자원을 제공하는 프로세서 (중앙처리장치, 메모리, 다양한 입출력장치)
소프트웨어
- 컴퓨터가 기능을 수행하는데 필요한 프로그램 (운영체제, 유틸리티, 응용 프로그램)
- 응용 프로그램: 사용자나 전문가에 의해 만들어진 프로그램 (웹 브라우저, 워드 프로세서, 데이터베이스 프로그램, 비디오 게임 등)

운영체제의 기능
- 하드웨어와 사용자 간의 인터페이스 제공
- 사용자들이 하드웨어를 공동으로 사용할 수 있도록 해줌
- 사용자 간의 자원 스케줄링
- 입출력 보조 역할
- 오류 처리

커널(Kernel)
- 운영체제의 핵심으로 메모리에 상주하며 운영체제의 다른 부분 또는 응용 프로그램 수행에 필요한 환경을 설정하는 소프트웨어
- 하드웨어와 소프트웨어 간의 중재자 역할
- 응용 프로그램 실행에 필요한 다양한 서비스를 제공하고 실행되는 프로세스를 스케줄링하는 역할

운영체제의 목적
- 편리성: 사용자가 프로그램을 개발하고 사용하는 데 좀 더 편리한 환경을 제공
- ex) 컴퓨터 GUI 환경
- 효율성: 자원을 효과적으로 사용하기 위해 각 프로그램을 유기적으로 결합하여 시스템 전체 성능을 향상
- 처리 능력: 시스템의 생산성을 나타내는 지표로 단위 시간당 처리하는 작업량
- 신뢰도: 하드웨어, 소프트웨어가 실패 없이 주어진 기능을 수행할 수 있는 능력
- 응답 시간: 사용자가 시스템에 작업을 의뢰한 후 반응을 얻을 때까지의 시간
- 사용 가능도: 사용자가 일정 기간 동안 컴퓨터를 실제로 사용한 시간

상주 모니터 (Resident Monitor)
- 초기의 운영체제 형태
- 현재 프로그램에서 다음 프로그램으로 제어가 자동으로 넘어가도록하는 프로그램
- 현재 실행 중인 프로그램이 끝나면 자동으로 다음 프로그램이 실행되도록 하는 것을 의미
- 즉, 프로그램 간의 전환을 자동으로 관리하고 조정
커널과 상주 모니터의 차이
구분 | 커널(Kernel) | 상주 모니터(Resident Monitor) |
역할 | 운영체제의 핵심, 하드웨어 및 리소스 관리 | 프로그램 로딩 및 실행 관리 |
기능 | 프로세스, 메모리, 파일, I/O, 인터럽트 관리 | 배치 처리 시스템에서 작업 자동화 |
위치 | 항상 메모리에 상주 | 프로그램 실행시 메모리에 적재됨 |
사용 시기 | 현대적인 모든 운영체제에서 사용 | 1960~1970년대 초기 OS에서 사용 |
CPU와 입출력 장치의 속도 차이를 보완
구분 | 버퍼링(Buffering) | 스풀링(Spooling) |
정의 | 데이터 전송 속도 차이를 줄이기 위해 버퍼(Buffer)라는 임시 저장 공간을 사용하는 기술 | 입출력 장치가 데이터를 처리할 준비가 될 때까지 디스크나 메모리에 데이터를 임시 저장하는 기술 |
작동 방식 | CPU와 I/O 장치 간 속도 차이를 줄이기 위해 데이터를 작은 버퍼에 저장 후 점진적으로 전송 | 여러 개의 작업을 대기열(Queue)에 저장한 후 순차적으로 처리 |
주요 역할 | - 데이터 흐름을 원할하게 유지 - CPU가 빠른 속도로 데이터를 처리할 수 있도록 도움 |
- CPU와 I/O 장치가 동시에 작업할 수 있도록 함 - 여러 작업을 동시에 처리하여 효율성을 높임 |
예시 | - 동영상 스트리밍(영상 데이터를 미리 받아와서 끊김 없이 재생) - 키보드 입력(입력한 문자를 버퍼에 저장 후 한꺼번에 처리) - 네트워크 데이터 전송(데이터를 일정량 모아서 전송) |
- 프린터 스풀링(여러 개의 인쇄 작업을 스풀에 저장 후 순서대로 출력) - 배치 처리 시스템(여러 개의 작업을 저장한 후 하나씩 실행) |
주요 차이점 | 하나의 작업과 관련된 입출력만 처리 | 여러 개의 작업을 저장 후 순차적으로 처리 |
실시간 처리 여부 | 실시간 데이터 처리가 가능 | 일반적으로 실시간 처리가 어려움 (작업이 쌓였다가 실행됨) |
다중 프로그래밍 시스템 (Multi Programming)
- 정의: 다중 프로그래밍 시스템은 하나의 CPU를 사용하여 여러 개의 프로그램을 동시에 실행하는 것처럼 보이게 만드는 방식입니다. 프로세서가 항상 수행할 작업을 가지고 있어 CPU의 사용률을 높이는 방식입니다.
- 핵심 개념: 실제로 CPU는 한 번에 하나의 프로그램만 실행할 수 있지만, 빠르게 프로세스를 전환하여 동시에 실행되는 것처럼 보이게 합니다.
- 목적: CPU 활용도를 극대화하여 CPU의 유휴 상태(idle)를 최소화합니다.
- 동작 과정
- 여러 개의 프로그램이 메모리에 적재됨 (웹 브라우저, 동영상 플레이어, 워드 프로세서 등)
- CPU는 한 번에 하나의 프로그램만 실행
- I/O 작업이 발생하면 CPU는 다른 프로그램을 실행
- 운영체제가 프로세스 간 전환(Context Switching)을 수행
- 이 과정에서 프로그램의 상태(레지스터, 메모리 정보 등)를 저장하고 복원
- 모든 프로그램이 번갈아 실행되면서 동시에 실행되는 것처럼 보임
시분할 시스템 (TSS, Time Sharing System)
- 정의: 시분할 시스템은 여러 사용자가 동시에 시스템을 사용하도록 지원하는 시스템이다. 각 사용자에게 일정한 시간 간격으로 CPU를 할당하여, 여러 사용자들이 동시 사용하는 것처럼 보이게 만든다.
- 핵심 개념: 여러 사용자가 순차적으로 매우 짧은 시간동안 CPU를 사용하게 하여, 응답 시간을 빠르게하고 다중 사용자 환경을 지원
- 목적: 다수의 사용자가 동시에 시스템을 사용할 수 있도록 하여 시스템 자원을 효율적으로 분배하고, 빠른 응답 시간을 제공
- 동작 과정
- 시스템은 여러 사용자가 각자 CPU 사용 시간을 할당 받는다
- CPU는 시간 슬롯을 기준으로 각 사용자가 차례로 시스템을 사용하게 함
- 각 사용자에게 할당된 시간 슬롯 동안만 작업을 수행
- 사용자들의 요청에 대해 빠른 응답을 제공, 각 사용자는 빠르게 시스템을 사용할 수 있음
분산 처리 시스템 (Distributed Processing System)
- 정의: 분산 처리 시스템은 여러 개의 컴퓨터(노드)가 네트워크를 통해 연결되어 공동으로 작업을 처리하는 시스템이다. 각 노드는 독립적으로 작업을 처리하며, 필요한 경우 네트워크를 통해 서로 협력한다.
- 핵심 개념: 각 컴퓨터는 독립적인 자원을 가지고 있지만, 네트워크를 통해 서로 협력하여 작업을 분담하고 처리한다.
- 목적: 시스템의 성능을 향상시키고, 고장 발생 시 다른 노드가 작업을 대신 처리하여 가용성을 높임
- 동작 과정
- 여러 개의 독립된 컴퓨터가 네트워크로 연결
- 작업이 여러 노드로 분배되어 병렬 처리
- 각 노드는 자체적으로 작업을 처리하고, 필요한 경우 데이터를 주고받으며 협력
- 고장난 노드는 다른 노드가 대신 처리하도록 하여 장애 허용을 제공
- 시스템은 부하 분산을 통해 각 노드의 부하를 효율적으로 관리
다중 처리 시스템 (MultiProcessing System)
- 정의: 다중 처리 시스템은 여러 개의 CPU를 사용하여 병렬로 작업을 처리하는 시스템이다. 각 CPU는 동시에 작업을 처리하여 성능을 극대화함
- 핵심 개념: 두 개 이상의 CPU가 병렬로 작업을 처리함으로써 성능을 향상시키며, 하나의 프로세서가 고장나더라도 다른 프로세서가 작업을 계속 처리할 수 있음
- 목적: 여러 CPU를 활용하여 병렬 처리를 통해 작업 속도를 향상시키고, 가용성을 높임
- 동작 과정
- 여러 개의 CPU가 시스템에 설치됨
- 작업이 여러 CPU에 병렬로 분배되어 동시에 처리
- 각 CPU는 독립적으로 작업을 처리하며, 작업 간에 상호 협력 가능
- 하나의 CPU가 고장나더라도, 다른 CPU가 작업을 대신 처리 가능
- 작업의 효율성을 높이기 위해 동기화 및 작업 분배가 이루어짐
시스템 | 정의 | 핵심 개념 | 목적 | 동작 과정 |
다중 프로그래밍 시스템 | 하나의 CPU를 사용하여 여러 프로그램을 동시에 실행하는 것처럼 보이게 하는 시스템 | CPU는 한 번에 하나의 프로그램만 실행, 빠르게 전환하여 여러 프로그램이 실행되는 것처럼 보임 | CPU 활용도 극대화, 유후 상태 최소화 | 여러 프로그램이 메모리에 적재되고, CPU는 프로그램을 빠르게 전환하여 실행 |
시분할 시스템 | 여러 사용자(작업)가 동시에 시스템을 사용할 수 있도록 지원하는 시스템 | 여러 사용자가 순차적으로 매우 짧은 시간동안 CPU를 사용 | 다수의 사용자가 동시에 시스템을 사용, 빠른 응답 시간 제공 | 사용자는 짧은 시간동안 CPU를 사용하며, 응답 시간이 빠름 |
분산 처리 시스템 | 여러 개의 컴퓨터(노드)가 네트워크를 통해 협력하여 작업을 처리하는 시스템 | 여러 독립적인 컴퓨터가 네트워크로 연결되어 협력하여 처리 | 성능 향상, 고장 허용, 부하 분산 | 작업을 여러 노드로 분배하고, 고장 시 다른 노드가 대신 처리 |
다중 처리 시스템 | 여러 개의 CPU가 병렬로 작업을 처리하는 시스템 | 여러 CPU가 동시에 작업을 처리하여 성능 향상 | 병렬 처리 속도 향상, 가용성 향상 | 여러 CPU가 독립적으로 작업을 처리하며, 고장 시 다른 CPU가 대신 처리 |
'운영체제' 카테고리의 다른 글
[운영체제] 컴퓨터 시스템 구성 요소 (0) | 2025.03.23 |
---|
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- useeffet
- 엑셀 파일 추출
- 블록스코프
- fsd 아키텍처
- SQL 개발자
- 스코프
- 운영체제
- 콜백 큐
- 호이스팅
- 접속형태
- 대소문자 변환
- Java
- StringBuilder
- replaceAll
- startsWith()
- 운영체제 특징
- 중첩스코프
- 네트워크
- 네트워크 접속장치
- SQLD
- 컴퓨터 시스템 구성요소
- 자료처리시스템
- 렌더링 과정
- 자료구조
- fsd 구조
- 온라인처리
- 운영체제 유형
- 구성형태
- Replace
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함