운영체제 스터디 1주차

이민정·2025년 3월 12일

운영체제

목록 보기
1/5

🍓 운영체제는 무엇이고 어떤 역할을 수행하는지 설명해주세요.

<정의>
컴퓨터 하드웨어와 다른 모든 소프트웨어를 연결해 사용하게 편리하게 하드웨어를 사용할 수 있게 해주는 소프트웨어입니다. 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕습니다.

<역할>
1. 자원 관리

운영체제는 컴퓨터 시스템의 하드웨어 자원을 효율적으로 관리하는 역할을 한다. CPU, 메모리, 저장장치, 입출력 장치 등 하드웨어의 자원을 할당하고 관리하여 여러 응용 프로그램이 동시에 실행될 수 있도록 한다.

2. 메모리 관리

운영체제는 컴퓨터의 메모리를 효율적으로 관리하여 응용 프로그램이 필요로하는 메모리 공간을 할당한다. 여기서 메모리의 할당과 해제, 가상 메모리 관리 등을 포함한다.

3. 프로세스 관리

프로세스의 생성, 실행, 일시 정지, 시스템 중지 등의 작업을 제어하며, 여러 프로세스 간의 자원 공유와 협력을 관리한다.

4. 디스크 및 파일 시스템 관리

운영체제는 디스크와 파일 시스템을 관리하여 파일의 생성, 삭제, 복사, 이동 등의 작업을 처리한다. 파일 시스템은 데이터의 영구적인 저장과 접근을 제공하여 사용자 및 응용 프로그램이 데이터를 쉽게 관리할 수 있도록 한다.

5. 입출력 관리

운영체제는 입출력 장치와의 상호작용을 관리한다. 사용자와 응용 프로그램이 키보드, 마우스, 디스플레이, 프린터 등과의 통신을 할 수 있도록 지원하며, 입출력 장치의 성능을 최적화 한다.

  1. 사용자 인터페이스

운영체제는 사용자와 컴퓨터 간의 상호작용을 지원하는 사용자 인터페이스를 제공한다. 텍스트 기반의 터미널 환경(CLI, Command Line Interface)과 그래픽 사용자 환경(GUI, Graphical User Interface)을 통해 사용자가 컴퓨터를 조작할 수 있도록 한다.

  1. 네트워킹

운영체제는 컴퓨터 네트워크를 관리하고, 네트워크 프로토콜을 지원하여 컴퓨터 간의 통신을 가능하게 한다. 인터넷 연결, 데이터 전송, 네트워크 보안 등을 관리한다.

8. 오류 처리

운영체제는 시스템 내부 또는 외부에서 발생하는 오류와 예외 상황을 처리한다. 여기서 프로세스의 비정상 종료, 메모리 오버플로우, 입출력 오류 등을 감지하고 처리하여 시스템의 안정성과 신뢰성을 유지한다.

9. 시스템 보안

운영체제는 시스템의 보안을 유지하기 위해 접근 제어, 사용자 인증, 암호화 등의 기능을 제공한다. 여기서 불법적인 접근과 데이터 유출 등으로부터 시스템을 보호하고 안전한 환경을 제공한다.

<종류>
윈도우, macOS, 리눅스, 유닉스, 안드로이드, ios

OS의 분류

[동시작업 여부에 따라]
단일작업(single tasking)용
한 번에 하나의 프로그램만 실행시킬 수 있는 운영체제이다.

다중작업(multi tasking)용
운영체제가 동시에 2개 이상의 프로그램을 실행시킬 수 있다. 최근에 대부분의 운영체제는 다중작업을 지원한다.
종류에는 시분할 시스템(time sharing system), 다중 프로그래밍 시스템(multi-programming system) == 대화형 시스템(interactive system)이라고도 한다. 이 세 가지 시스템 모두 하나의 컴퓨터에서 여러 프로그램이 실행되어 생긴 것이다. 이와는 조금 다른 개념으로 다중처리기 시스템(multi-processor system)이 있는데 이것은 CPU가 여러개 존재하는 시스템을 말한다.

🍓시분할 시스템에 대해서 설명해주세요.

여러 개의 프로세스가 컴퓨터의 자원을 시간적으로 분할해 작업시간을 조금씩 나누어 쓰는 시스템입니다. (Time Sharing System)

🍓다중 프로그래밍 시스템(multi-programming system)에 대해서 설명해주세요.

하나의 CPU와 주기억장치를 이용하여 여러개의 프로그램을 동시에 처리하는 방식입니다. 여러 프로그램들이 조금씩 메모리 공간을 보유하며 동시에 메모리에 올라가 있습니다.

🍓대화형 시스템(interactive system)에 대해서 설명해주세요.

프로그램이 진행되는 도중에 사용자로부터 데이터를 입력받아 프로그램 진행에 반영할 수 있는 운영체제 방식입니다.

<종류>
웹 사이트, 스마트폰 앱 등

🍓다중 처리기 시스템(multi-processor system)에 대해서 설명해주세요.

여러개의 CPU와 하나의 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식입니다. 이를 통해 작업들은 병렬로 실행되어 시스템 성능을 향상시킵니다.

🍓시스템 콜에 대해 설명해주세요.

소프트웨어 인터럽트의 일종으로, 사용자 모드에서 커널에 있는 코드(ex.하드 디스크에 저장)를 실행하고자 커널 모드로 전환하는 방법입니다.
시스템 콜을 발생시키면 CPU 제어권을 운영체제로 넘겨서 운영체제 커널에 있는 코드를 처리하게 됩니다.

🍓커널에 대해 설명해주세요.

운영체제의 핵심 기능을 담당하는 소프트웨어입니다. 운영체제는 크기가 큰 소프트웨어이기 때문에 메모리 낭비를 줄이기 위해 운영체제의 사용되는 일부 부분만 메모리에 올려놓습니다. 이때 메모리에 상주하는 운영체제의 부분을 커널이라고 합니다.

<역할>
1. 프로세스 관리
2. 자원 접근 및 (CPU 스케줄링, 페이징, 스와핑, 인터럽트 서비스 루틴)
3. 파일 시스템 관리 (관련된 정보를 파일로 묶어 저장 장치에 보관, 파일들을 붂어 폴더 단위로 저장 장치에 보관)

🍓이중 모드에 대해 설명해 주세요.

CPU가 명령어를 실행하는 모드를 크게 사용자 모드아 커널 모드로 구분하는 방식입니다.

🍓커널모드에 대해 설명해주세요.

커널 모드는 시스템 자원에 접근할 수 있고, 모든 CPU 명령을 수행할 수 있는 모드 입니다.
예를들어, 프로세스는 사용자 모드에서 수행하던 중 시스템 콜이나 인터럽트가 발생하면, 커널모드로 전환 한 후 사용자 모드에서 처리할 수 없는 작업을 커널을 통해 수행 합니다.

🍓유저모드에 대해 설명해주세요.

유저모드란 운영체제 서비스를 제공받을 수 없는 모드를 의미합니다. 커널에 정의되어 있는 작업을 수행할 수 없고 자원에 접근할 수 없습니다. 따라서 시스템 콜을 통해 커널모드로 전환하여 커널의 기능을 사용해야 합니다.

🍓폴링에 대해 설명해주세요.

폴링은 CPU가 일정 주기마다 이벤트가 발생 했는지 소프트웨어적으로 확인하는 방법 입니다.
예를들어 CPU가 I/O 작업을 요청한뒤 이 작업이 완료 되었는지 주기적으로 확인 합니다.
이벤트에 대한 지속적인 확인을 수행하기 때문에 리소스가 소모되고, 이벤트가 발생한 정확한 타이밍에 처리하기가 어렵다는 단점이 있습니다. 하지만 구현은 쉽습니다.

🍓인터럽트에 대해 설명해주세요.

CPU가 프로그램을 실행하고 있을 때 예외상황이 발생했음을 알리는 신호입니다.

<처리과정>
요청 → 인터럽트 여부 확인 → 인터럽트 블래그 확인 → 백업 → 처리 → 재개

  1. 인터럽트 요청 신호를 보낸다.
  2. CPU는 실행 사이클이 끝나고 인터럽트 여부를 확인한다.
  3. 확인 후 인터럽트 플래그를 통해 인터럽트를 받아들일 수 있는지 확인한다.
  4. 받아들일 수 있다면 현재까지의 작업을 스택 영역에 백업한다. (컨텍스트 스위칭 = 문맥 교환)
  5. 인터럽트 벡터를 참조하여 인터럽트 서비스 루틴을 실행
  6. 인터럽트 요청 신호가 발생했을 때 보관한 PC의 값을 복원하여 이전 실행 위치로 복귀. 이어서 프로그램을 진행한다.

<종류>

  • 하드웨어 인터럽트 : 입출력 인터럽트, 정전/전원 이상 인터럽트, 기계 착오 인터럽트 / 외부 신호 인터럽트
  • 소프트웨어 인터럽트 : 프로그램 검사 인터럽트, SVC 인터럽
  • 타임아웃

🍓동시에 두 개 이상의 인터럽트가 발생하면, 어떻게 처리해야 하나요?

동시에 인터럽트가 발생하면 cpu는 인터럽트 우선순위를 기준으로 인터럽트를 처리합니다. 이때, 선점형 방식으로 동작합니다. 인터럽트 처리 중 우선순위가 높은 인터럽트가 발생한다면 해당 인터럽트가 먼저 처리된다.

🍓DMA에 대해 설명해주세요.

DMA(Direct Memory Access)는 CPU를 사용하지 않고 주변 장치의 로컬버퍼에서 메인 메모리로 데이터를 읽어오는 작업을 의미합니다.
DMA를 사용하면 CPU가 I/O 장치에 의해 자주 인터럽트 당하는 것을 막아줘서 CPU를 좀 더 효율적으로 관리하고 입출력 연산을 빠르게 수행할 수 있습니다.

🍓동기식 I/O에 대해 설명해주세요.

입력이나 출력을 요청한 후에 그 작업이 완료될 때까지 기다리는 방식입니다.
예를 들어, 파일을 읽거나 쓰는 경우에는 파일 시스템에 접근하고 데이터를 전송하는데 시간이 걸립니다. 이때 동기식 I/O를 사용하면 파일 작업이 끝날 때까지 다른 작업을 수행할 수 없습니다.

🍓비동기식 I/O에 대해 설명해주세요.

비동기식 I/O는 입력이나 출력을 요청한 후에 바로 다른 작업을 수행하는 방식입니다.
예를 들어, 파일을 읽거나 쓰는 경우에는 파일 시스템에 접근하고 데이터를 전송하는 작업을 별도의 스레드나 프로세스에 위임하고, 메인 스레드나 프로세스는 다른 작업을 계속합니다. 이때 비동기식 I/O를 사용하면 파일 작업이 완료되면 콜백 함수나 이벤트를 통해 결과를 받아옵니다.

https://velog.io/@weweweme/1731-221217
https://pinelover.tistory.com/153
https://review-answer.tistory.com/4
https://sy-note-0.tistory.com/27
https://velog.io/@yoonuk/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EB%8F%99%EA%B8%B0%EC%8B%9D-IO%EC%99%80-%EB%B9%84%EB%8F%99%EA%B8%B0%EC%8B%9D-IO

profile
🍳🎀🕶️👑🧸

2개의 댓글

comment-user-thumbnail
2025년 3월 13일

이 글을 읽고 알파고와의 오목 대결에서 승리할 수 있었습니다. 감사합니다.

1개의 답글