본문 바로가기
개발공부 개발새발/OS

OS ) 운영체제 소개

by 휴일이 2023. 10. 21.

컴퓨터는 왜 컴퓨터일까?

→ 컴퓨터는 원래 미사일 탄도를 계산하기 위해 개발되었는데 왜 계산기가 아닌 컴퓨터일까?

  • 프로그래밍이 가능한 기계 == 컴퓨터

일반 기계와 컴퓨터의 차이

  • 성능을 높이거나 기능을 추가해야할 경우
  • 일반 기계 → 기계를 새로 제작.
  • 컴퓨터 → 프로그램 변경으로 해결!!

컴퓨터 종류

범용 컴퓨터

우리가 알고 있는 게임/웹서핑 등을 하는 일반 컴퓨터

임베디드 시스템

스마트 시계, 스마트 TV 등에 탑재되어 특정 작업만 수행하는 컴퓨터

  • CPU 성능이 낮고 메모리 크기가 작으며 디스플레이 크기가 작다.
    • 특정 작업만 수행
  • 애플워치, 갤럭시워치에 적용된 watchOS, wearOS 가 임베디드 운영체제.

정보란?

  • 컴퓨터는 데이터를 처리하고 결과를 출력하거나 저장한다.
  • 컴퓨터가 데이터를 처리해 의미 있는 자료가 되는 결과물, “정보

컴퓨터의 구성

하드웨어

  • 소프트웨어에 정보를 받아 작업을 수행한다.

소프트웨어

  • 하드웨어를 제어해 작업을 수행시키는 명령의 모음.
  • 즉, 프로그램 !!

소프트웨어 종류

응용프로그램

  • 게임이나 워드 등, 특정 작업을 위해 사용하는 프로그램.

시스템 소프트웨어

  • 컴퓨터 하드웨어와 응용 프로그램을 관리하기 위한 소프트웨어.
  • 운영체제, 유틸리티 등…
    • 유틸리티: 바이러스 검사, 디스크 조각모음, 압축 프로그램과 같이 운영체제 작업을 보조하는 프로그램.

 

💡 운영체제란 ? 응용프로그램의 잘못된 동작으로 컴퓨터가 망가지는 것을 막기 위해 컴퓨터 전체를 관리하고 운영하는 소프트웨어.

 

운영체제

  • 컴퓨터 관리를 위한 기본 규칙과 절차를 규정.
  • 컴퓨터 내의 HW, SW 를 관리한다.
  • 응용 프로그램은 운영체제에게 허락을 받은 후 HW 를 사용 가능.!
    • 컴퓨터든 스마트폰이든 응용체제가 먼저 실행되어 하드웨어를 장악한 후, 다른 프로그램들이 실행된다.

특징

  • 컴퓨터 자원 보호, 관리
    • 사용자가 자원에 직접 접근하는 것을 막는다.
    • 응용 프로그램과 사용자에게 모든 컴퓨터 자원을 숨긴다.

→ 대신 자원을 이용할 수 있는 여러 방법을 제공한다!

자원 이용 방법

  • 인터페이스 사용.
    • 사용자가 컴퓨터를 사용할 수 있게 해주고 결과를 알려주는 장치.

역할

  • 컴퓨터에 있는 하드웨어(자원)을 조정하고 관리하기.

그래서 결국 운영체제가 뭔데???????

→ “컴퓨터 자원을 효율적으로 관리하는 소프트웨어”

운영체제는 하드웨어의 도움 없이는 작동하기 어려워, 하드웨어와 소프트웨어 특성을 모두 갖춘 형태로 운영된다. 이를 “펌웨어” 라고 부른다.

컴퓨터 구조와 운영체제

운영체제 구성

 

커널 운영체제 핵심 기능을 모아둔 것, 모든 컴퓨터 자원 관리.
인터페이스 커널에 명령을 내리고 사용자에게 결과를 전달해줌

커널

  • 모든 컴퓨터 자원은 커널을 통해서만 접근할 수 있다.
  • 어떤 사용자도 응용 프로그램도 컴퓨터 자원에 “직접 접근”은 불가하다.

인터페이스

  • 응용프로그램이 컴퓨터 자원(커널)을 이용하기 위해 운영체제가 제공하는 함수 형태의 인터페이스.
  • UI → 사용자 인터페이스
    • 디렉토리를 만들거나 파일을 복사하는 등의 작업을 할 때 이용.
  • GUI → 그래픽 사용자 인터페이스
    • 문자 기반 인터페이스에서 사용자 친화적으로 변한, 그래픽을 이용한 인터페이스.
    • 요즘 컴퓨터가 이용함 !!
  • 시리, 빅스비같은 음성인터페이스나, 스마트폰 사용을 위한 터치스크린 인터페이스도 있다…!!

운영체제의 (세부)역할

 

자원 관리  컴퓨터 자원을 프로그램에 알맞게 배분해 사용자의 원활한 작업을 돕는다.
자원 보호 비정상적인 작업으로부터 컴퓨터 자원을 지킨다.
하드웨어 인터페이스 제공 어떤 하드웨어든지 기본 인터페이스를 사용해서 지원함.
사용자 인터페이스 제공 사용자가 운영체제를 편리하게 사용하도록 제공.
예전엔 문자 기반이었지만 지금은 GUI 제공 등으로 편리!  

운영체제의 목표

  • 효율성 : 효율적으로 자원 관리를 해야한다.
    • 운영체제의 크기 최소화.
    • 운영체제 사용 코드 최적화.
  • 안정성 : 운영체제는 안정적이어야 한다.
    • 사용자, 응용 프로그램의 안전 문제와 HW 보안 문제를 처리할 수 있어야 한다.
    • 시스템 문제가 발생했을시 이전으로 복구가 가능해야 한다.
  • 확장성 : 다양한 시스템 자원을 추가하거나 제거하기 편리해야 한다.
    • 하드웨어 종류에 상관없이 꽂으면 바로 실행할 수 있어야 한다.
    • 앞으로 개발될 하드웨어도 제약없이 사용할 수 있게 하드웨어 제작자의 편리성도 고려한다.
  • 편리성 : 사용자가 편리하게 작업할 수 있는 환경을 만들자.
    • 사용자에게 GUI 대신 텍스트만 사용하게 하면 효율성이 높아지지만, 사용자가 불편하다.
      • 그래서 GUI 등을 사용하게 한다.
    • 응용 프로그램의 효율성을 높이기 위해 메모리 100MB 이상 사용을 제한한다.
      • 시스템 효율성이 높아지나, 사용자와 개발자를 불편하게 한다.
    • 응용 프로그램과 사용자에게 다양한 편리성을 제공하되, 자원 낭비 요소를 막아야한다!

 

효율성 자원 관리 효율적으로 자원 관리를 해야한다.
안정성 자원 보호 안정적으로 보안 문제를 처리하고 복구 결함 포용 기능을 수행해야 한다.
확장성 하드웨어 인터페이스 제공 하드웨어 종류에 상관없이 꽂으면 바로 실행할 수 있는 플러그 앤드 플레이 기능을 제공해야 한다.
편리성 사용자 인터페이스 제공 편리하게 이용하기 위해 사용자 인터페이스를 제공해야 한다.
728x90

'개발공부 개발새발 > OS' 카테고리의 다른 글

OS ) 시스템콜, 코루틴, 그리고 이벤트 루프란?  (0) 2024.10.29
OS ) CPU와 메모리  (0) 2023.11.02
OS ) 컴퓨터의 기본 구성  (1) 2023.10.23
OS ) 운영체제의 구성  (2) 2023.10.23
OS ) 운영체제의 발전  (1) 2023.10.22