[운영체제] 1-1 운영체제 개념

2024. 12. 5. 00:52·운영체제

운영체제(Operating System)란 무엇일까? 

운영체제는 실체가 있는 '소프트웨어'로 컴퓨터를 관리하는 특별한 기능의 코드 집합 혹은 프로그램이다. 

 

운영체제의 정의 

  • 사용자와 컴퓨터 하드웨어 사이에서 중계 역할을 하면서, 프로그램의 실행을 관리하고 제어하는 소프트웨어
  • 컴퓨터가 켜질 때 메모리에 적재되어 모든 프로그램의 실행을 제어하고 사용자의 요청을 처리해주는 소프트웨어
  • 운영체제는 컴퓨터의 자원을 독점적으로 관리하는 특별한 소프트웨어

이를 다시 풀어 써보면 운영체제는 우리가 전원을 켜면 가장 먼저 만나도록 약속된 소프트웨어이다. 예를 들어 윈도우, 리눅스, 맥 OS 등등 다양한 운영체제가 존재할 것이다. 그리고 이 소프트웨어는 사용자가 컴퓨터를 '잘'사용할 수 있도록 돕는다. 그리고 이를 위해 운영체제는 컴퓨터의 자원을 독점적으로 관리하는 것이다. 

 

운영체제가 '자원'을 '독점'적으로 관리한다는 말을 살펴보자. 

여기서 '자원'이라함은 무엇을 의미하는 것일까? 

컴퓨터는 하드웨어, 소프트웨어, 데이터 세 가지 자원으로 구성되어있다. 이에 대해서는 나중에 더 자세히 배울 기회가 있을 것이다. 

이러한 자원을 운영체제는 '독점'한다. 

여기서 '독점'은 자원에 대한 접근과 관리 권한이 오직 운영체제에게만 있다는 뜻이다. 예를 들어 우리가 한글오피스 프로그램을 쓴다고 할 때 사용자는 잘 알지 못하지만 응용프로그램은 운영체제에게 요청하여 파일을 만들고, 읽고, 쓴다. 

 

그럼 왜 운영체제는 자원을 독점하는가? 

이는 사용자들과 응용프로그램들로부터 자원에 대한 훼손을 막고 그들 사이에 자원을 효과적으로 공유할 수 있도록 하기 위함이다. 

 

이런 측면에서 소프트웨어는 소프트웨어를 관리하고, 자원을 관리하고, 성능을 관리하며, 외부의 침입으로부터 사용자와 컴퓨터를 보호하는 자원을 관리하는 관리자의 역할 또한 수행한다고 할 수 있을 것이다. 

 

하지만 이렇게 대단한 운영체제 또한 소프트웨어이다.

즉 운영체제 또한 프로그램이며 코드라는 것이다. 운영체제는 '커널(kernel)', 'UI(User Interface)를 비롯한 도구 프로그램 그리고 장비를 직접 제어하는 디바이스 드라이버라는 소프트웨어로 구성되어있다. 

커널은 핵(core)라는 뜻으로, 운영체제의 핵심 코드이며 좁은 의미의 운영체제로 불린다. 앞서 설명한 '관리'기능을 수행하는 핵심 코드이기도 하다. 

커널에 관해서는 뒷부분에 더 자세히 다룰 것이기에 간단한 실행 과정만 살펴보도록 하자.

커널은 운영체제가 설치된 저장장치에 저장되어있다가. 컴퓨터가 부팅될 때 메모리에 적재된다. 그 후 응용프로그램이 자원에 접근하기 위해 호출할 때 실행되며, 하드웨어를 제어하게 된다. 무슨 소리인지 모르겠더라도 괜찮다. 메모리가 무엇인지, 응용프로그램은 무엇인지 뒤에서 더 자세히 배우게 될 것이다. 

 

운영체제의 목적과 기능 

그렇다면 운영체제가 존재하는 이유와 본질적인 목적은 무엇일까? 

이는 두 가지로 요약 된다 

  1. 사용자의 컴퓨터 사용 편의성 
  2. 자원의 효율적 사용과 관리 

즉 운영체제는 컴퓨터 자원을 응용 프로그램이나 사용자가 사용함에 있어 편리하도록 돕고, 컴퓨터 자원의 낭비를 줄여 효율적으로 사용하도록 한다. 

운영체제는 이를 위해 

  • CPU/ 프로세스 관리 
  • 메모리 관리 
  • 파일시스템관리 
  • 장비관리
  • 네트워크 관리
  • 보안관리
  • 기타관리

의 기능을 수행한다. 이와 관해서는 뒷부분에 더 자세히 배우게 될 것이다. 간단히 살펴보면 

 

- 프로세스 관리: 프로세스 적재, 실행, 종료, 새프로세스 생성, 프로세스 스케쥴, 동기화
  (CPU, 
메모리)

- 메모리 관리: 메모리 할당/반환, 보호, 디스크 영역으로 메모리 영역 확장(가상 메모리)
  (
메모리, 디스크)

- 파일 시스템 관리: 파일 생성/삭제, 열기/닫기, 읽기/쓰기, 저장위치 관리, 파일 속성 등 정보 관리, 디스크의 빈 영역 등 저장 장치 관리 (디스크, SSD, USB)

- 장치관리 : 장치로부터 읽기, 장치에 쓰기, 장치 제어

- 네트워크 관리: 네트워크 입출력, 분산처리 관리

- 보안관리: 외부의 침입으로부터 보호?

- 기타 관리: 사용자 계정, 통계, 오류 발견 및 대응, 부팅

 

계속 '응용 프로그램'이라는 단어를 언급하고 있는데 응용프로그램과 운영체제는 뭐가 어떻게 다른 것일까? 

응용프로그램은 컴퓨터 사용자들을 위해 특정 작업을 수행하는 소프트웨어이다. 우리가 흔히 사용하는 웹브라우저, 문서 편집기, 음악, 동영상 플레이어 등등이 여기 속한다. 운영체제는 컴퓨터를 켜면 메모리에 적재되어 전원이 꺼질 때까지 계속 함께하지만 응용프로그램은 사용자의 명령이나 다른 응용소프트웨어의 명령이 있을 때 실행되고 사용자가 강제로 종료시킬 수 있다. 자원에 대한 접근 권한 또한 다르다. 운영체제는 컴퓨터의 자원에 대한 배타적 접근 권한을 갖는다. 즉 독점한다. 그렇기에 응용프로그램은 자원을 사용하기 위해 운영체제에 요청해야만 한다. 

 


정리 

 

운영체제는 우리가 전원을 켜면 가장 먼저 만나도록 약속된 소프트웨어이다. 이 소프트웨어는 사용자가 컴퓨터를 '잘'사용할 수 있도록 돕는다. 그리고 이를 위해 운영체제는 컴퓨터의 자원을 독점적으로 관리하는 것이다. 이를 통해 운영체제는 사용자의 컴퓨터 사용 편의성을 보장하고 자원을 효율적으로 사용하고 관리한다. 사용자에게 컴퓨터의 자원을 '추상화'한다고도 말할 수 있을 것이다. 그리고 이 추상화를 통해 사용자에게는 인터페이스를 제공한다.

 

이를 풀어쓰면 운영체제는 자원관리를 통한 '효율성', 자원보호를 통한 '안정성', 하드웨어 인터페이스를 제공하는 '확장성', 사용자 인터페이스를 제공하는 '편리성'을 제공한다. 

'운영체제' 카테고리의 다른 글

[운영체제] 4. 스레드와 멀티 스레딩  (2) 2025.01.27
[운영체제] 3. 프로세스와 프로세스 관리  (4) 2025.01.14
[운영체제] 2. 컴퓨터 시스템과 운영체제  (3) 2025.01.06
[운영체제]1-2 운영체제의 태동  (5) 2024.12.19
[운영체제] 0. 운영체제 공부 시작  (4) 2024.12.05
'운영체제' 카테고리의 다른 글
  • [운영체제] 3. 프로세스와 프로세스 관리
  • [운영체제] 2. 컴퓨터 시스템과 운영체제
  • [운영체제]1-2 운영체제의 태동
  • [운영체제] 0. 운영체제 공부 시작
코뮝
코뮝
  • 코뮝
    코뮝의 기술 블로그
    코뮝
  • 전체
    오늘
    어제
    • 분류 전체보기 (25)
      • DB (1)
      • JAVA (0)
      • 운영체제 (11)
      • Spring (9)
      • 알고리즘 (2)
      • 카테캠 3기 (1)
      • DevOps (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    원자 명령
    코스만 조건
    명품 운영체제
    운영체제
    스레드 매핑
    참조의 지역성
    김영한
    카태켐
    생산자 소비자 문제
    기아 스레드
    프로그래머스 유연근무제
    기초 cs
    OS
    Spring
    역페이지테이블
    가변 크기 할당
    카태켐3기
    카테캠 백엔드
    타조 알고리즘
    스프링 기본
    시스템 콜
    CS
    운영체제 공부
    자바
    스프링
    백엔드
    분할 메모리 할당
    커널 레벨 스레드
    고정 크기 할당
    Java
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코뮝
[운영체제] 1-1 운영체제 개념
상단으로

티스토리툴바