[운영체제] 운영체제의 개념

aramjs·2023년 4월 3일

운영체제

목록 보기
1/6
post-thumbnail
  • 정의 : 응용 프로그램이나 사용자에게 자원을 이용할 수 있는 인터페이스를 제공하고 그 결과를 돌려주는 시스템 소프트웨어.
  • 역할 : 자원 관리, 접근 제어, 기계의 기능 향상.
  • 목표 : 효율성, 안정성, 확장성, 편리성.
  • 발전 과정 : 에니악 - 천공카드 - 대화형 - 시분할 - 분산 시스템 - 클라이언트/서버 - p2p, 클라우드, 사물인터넷
  • 현대의 컴퓨팅 환경 : p2p, 클라우드 컴퓨팅, IoT

1. 운영체제

  • 사용자에게 인터페이스를 제공하고 자원을 효율적으로 관리하는 소프트웨어이다.

  • 임베디드 운영체제 : CPU의 성능이 낮고 메모리 작은 시스템에 내장하도록 만든 운영체제이다. 이것이 있는 기계는 기능을 계속 향상할 수 있다.

  • 커널인터페이스로 나뉜다.

  • 커널을 통해야만 pc자원에 접근 가능하다.


2. 운영체제의 필요성과 역할

  1. 자원 관리
  2. 자원 보호
  3. 하드웨어 인터페이스 지원
  4. 사용자 인터페이스 지원
  • 프로세스 스케줄링
  • 접근 제어, 비정상작업을 보호한다.
  • 하드웨어의 종류에 상관없이 프로그램이 실행되게 한다.
  • 사용자 편의를 향상한다.

3. 목표

1. 효율성
2. 안정성
3. 확장성
4. 편리성

  • 자원을 효율적으로 관리한다.
  • 안정적인 작업 처리, 문제 복구, 보안.
  • 다른 자원의 추가/제거가 편리하다.
  • 사용자의 이용을 편리하게 한다.

4. 역사

  • 에니악 : 진공관 ( on -> 1 | off -> 0 ) 운영체제가 없다.

  • 천공카드 : 천공카드 리더(입력)와 라인프린터(출력)를 이용한다.
    카드에 구멍을 뚫어 입력한다.

  • 일괄 작업 시스템 : 천공카드리더기(입력)와 라인프린터(출력)를 이용한다.
    모든 작업을 한번에 처리 -> 중간에 수정이 불가능.

  • 대화형 시스템 : 모니터 - 키보드 등장으로 입력값에 따라 작업 흐름을 바꿀 수 있게 됨.

  • 시분할 시스템 :
    멀티프로그래밍 : 1개 cpu여러 작업을 수행하는 기술이다. 시간을 쪼개어 여러 작업에 나눈다. 효율적이다.

    • 시분할 시스템은 멀티프로그래밍 기술을 사용한다.
    • 단점: 많은작업 공존하면 중요한 작업 못 끝낼 수도 있다. -> FIFO
    • 나눈 시간 한 조각을 타임 슬라이스/타임 퀀텀이라고 한다.
    • 실시간 시스템 : 일정 시간 안에 작업이 끝나는 것을 보장하는 시스템의 종류이다. 종류로는 경성(원자력-중요)/연성(동영상 재생기-덜중요)가 있다.
  • 분산 시스템 : 작은 컴퓨터 여러대를 하나로 묶어서 사용

  • 클라이언트/서버

  • P2P 시스템 : 클라이언트-서버 과부하 해결한다. 사용자-사용자 연결이므로 컴퓨터 1개가 고장나도 괜찮음 ex)블록체인

  • 클라우드 컴퓨팅

  • IoT


커널/인터페이스

커널 : 프로세스 관리, 메모리 관리, 저장장치 관리 등 OS의 핵심 기능의 집합이다.
커널은 시스템 호출드라이버를 포함한다.

인터페이스 : 커널사용자의 명령을 전달하고 실행 결과를 사용자에게 알려준다. ex) GUI (Graphical User Interface)

----------------------
 응용프로그램 | 유틸리티
----------------------
  **GUI(인터페이스)**			
----------------------     -------------
 시스템 호출(커널에 포함)  
       **커널**			   	 (운영체제)
  드라이버(커널에 포함)    
----------------------	   -------------
       하드웨어			
----------------------

시스템 호출/디바이스 드라이버

시스템 호출 : 커널이 제공하는 시스템 자원의 사용과 연관된 함수이다. 커널을 보호하는 인터페이스이다.

  • 하드웨어에 접근하거나 운영체제를 이용할 때 사용한다.
    ㄴ 다른 경로로 접근을 차단하여 자원을 보호한다.

  • 커널을 이용하기 위한 도구이다.

  • 사용자가 직접 커널에 접근할 수 있는 유일한 수단이다.

  • 직접 저장하지 않고 커널이 제공하는 write()함수 사용하여 접근한다.
    유사용어로 API가 있다.

디바이스 드라이버 : 커널과 하드웨어의 인터페이스를 담당한다.


가상머신

가상머신 : 운영체제와 응용 프로그램 사이에서 돌아가는 프로그램이다.

  • 응용 프로그램이 모두 동일한 환경에서 작동하는 것처럼 보이게 한다.

  • 자바는 JVM(Java Virtual Machine)상에서 작동한다. 따라서 운영체제에 상관없이 작동한다.


유닉스와 리눅스

  • 유닉스 : 데니스 리치와 피터 뉴만이 개발했다.
    이식하기 쉽다는 장점이 있다.
    소스코드가 공개되어 다른 기종의 컴퓨터에 이식할 수 있다.

  • 리눅스 : 리누스 토르발스가 만든 pc에서 작동하는 유닉스 호환 커널
    원래 유닉스는 메인프레임과 같은 대형 컴퓨터에서만 사용하였다.

매킨토시와 스티브 잡스

  • 1977년 키보드, 메인보드, 전원장치가 일체형인 애플II이 출시되었다.
    ㄴ 일반 대중에게도 컴퓨터가 퍼지고 다양한 하드웨어, 소프트웨어가 개발되었다.

  • Mac OS : 마하 커널 기반이고, GUI를 처음 도입했다.

  • iOS : Mac OS를 수정한 아이폰 운영체제이다.


모바일 운영체제

  • iOS : 기존 Mac OS커널이 지원하지 않는 기능을 Core Framework에서 지원한다. 아이폰에서만 사용한다.
    Core Framework : GPS, 자이로스코프 센서, 가속도 센서, 나침반 같은 기능의 접근과 관리를 담당한다.

  • Android : 구글이 주도하는 Open Handset Alliance가 개발함. 다양한 기기에서 사용하고, 소스코드가 공개되었다.
    리눅스 커널과 자바를 사용하여 호환성이 좋다.


확인 문제

1) 컴퓨터는 운영체제 없어도 작동하는가?

작동한다. 프로그램이 가능하면 컴퓨터이다.

2) OS가 있는 기계와 없는 기계는 어떤 차이가 있는가?

OS가 없는 기계

  • 만들 당시 구현한 기능만을 수행한다.
  • 다른 기능의 추가, 성능 향상을 할 수 없다.
  • 정해진 계산만 가능하다. (하드웨어를 쉽게 바꾸지 못함)

3) 운영체제는 성능을 향상하는 데에만 필요한가?

성능향상뿐만 아니라 자원관리, 접근제어를 한다.

4) 운영체제는 자원을 어떻게 관리하는가?

시스템 호출을 통해 사용자가 직접 자원에 접근하는 것을 막는다.

profile
안녕하세요.

0개의 댓글