goblin
리니팅
goblin

공지사항

전체 방문자
오늘
어제
  • 분류 전체보기 (75)
    • 개발 (31)
      • Spring (12)
      • JPA (4)
      • JAVA (4)
      • Python (6)
      • Docker (1)
      • Error (3)
      • Spring Cloud로 개발하는 MSA (1)
    • 알고리즘 (32)
    • 자료구조 (3)
    • 컴퓨터 개론 (3)
    • 개인 프로젝트 (4)
      • 쇼핑몰 만들기 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

태그

  • 클래스
  • 백준
  • springboot
  • inflearn
  • sorting
  • 파이썬
  • 동적계획법
  • gradle
  • 객체
  • 문자열
  • 파워자바
  • 정렬
  • Intellij
  • 다이나믹프로그래밍
  • 구현
  • tdd
  • 조합
  • Spring
  • dp
  • 코딩테스트연습
  • 스프링
  • 스프링부트
  • 알고리즘
  • 다이나믹 프로그래밍
  • python
  • 자료구조
  • 코딩테스트
  • JPA
  • BOJ
  • 프로그래머스

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
goblin

리니팅

컴퓨터 개론

운영체제

2022. 4. 28. 13:12
728x90

운영체제

운영체제는 컴퓨터나 노트북 전원을 켜면 가장 먼저 만나는 소프트웨어이다.

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

 

운영체제의 기능

컴퓨터의 기능을 사용자가 잘 활용하도록 돕고 하드웨어가 성능을 잘 발휘하도록 한다.

 

핵심 기능 : 자원 관리

  • 프로세스 관리 : 프로세스에 CPU를 배분하고 작업에 필요한 제반 환경을 제공한다.
  • 기억장치 관리 : 프로세스에 작업 공간을 배치하고 실제 메인 메모리보다 큰 가상공간을 제공한다.
  • 파일 관리 : 데이터를 저장하고 접근할 수 있는 인터페이스를 제공한다.
  • 입출력 장치 관리 : 입출력 장치 및 주변 장치를 관리한다.

 

운영체제의 목적

  • 컴퓨터 시스템의 자원을 편리하게 사용할 수 있는 환경을 제공하고 컴퓨터 시스템의 자원들을 효율적으로 관리하여 시스템의 성능을 최적화
  • 처리능력 향상, 사용 가능도 향상, 신뢰도 향상, 반환 시간 단축

 

운영체제의 구조

커널 + 사용자 인터페이스

 

커널

프로세스 관리, 메모리 관리, 저장 장치 관리 같은 운영 체제의 핵심 기능을 모아 놓은 것

 

사용자 인터페이스

사용자와 운영체제의 커널을 연결시켜 주는 역할

 

시스템 호출

사용자가 커널을 사용할 수 있도록 운영체제가 제공하는 프로그램 함수의 집합

 

프로세스

하나의 작업 단위, 실행 중인 프로그램

 

스왑 영역

메모리가 모자라서 쫓겨난 프로세스를 저장 장치의 특별한 공간에 모아두는 영역

 

가상 메모리의 크기 = 실제 메모리 크기 + 스왑 영역 크기

 

운영체제의 활용

  • 초기 운영체제
    • 프로그래머는 각종 장치의 전면 판의 스위치를 이용하여 직접 프로그램을 주기억장치에 적재하고 해당하는 버튼을 눌러 프로그램을 실행
  • 일괄처리방식
    • 일정 기간 또는 일정량의 자료 처리를 모아 두었다가 한 시점에 순서적으로 일괄적으로 처리하는 방식
    • 한 번 시스템을 차지한 자료는 시스템 자원을 독점하여 처리하므로 컴퓨터 시스템을 효율적으로 사용
    • CPU가 사용 가능하더라도 다른 처리를 할 수 없는 유휴시간(idle time)을 갖게되는 단점
    • 작업 제출과 작업 완료 사이의 시간(turn around time)이 많이 걸려 작업 결과를 빠르게 확인할 수 없는 단점
  • 시분할 시스템
    • 여러 작업을 처리할 때 이용하는 처리 방법
    • CPU의 이용 시간을 잘게 분할, 여러 사용자의 작업을 순환하며 수행
    • 단말기만 이용할 수 있다면 짧은 작업인 경우엔 수행을 빨리 완료할 수 있는 특징
    • 중앙처리장치의 유휴 시간을 줄일 수 있음
  • 다중 프로그래밍 시스템
    • 여러 프로그램이 동시에 실행되는 것과 같이 보임, 실제로 여러 프로그램이 동시에 수행되는 것이 아니고 한 프로그램씩 순차적으로 돌아가면서 조금씩 수행
    • CPU의 속도가 매우 빠르므로 우리가 보기에는 동시에 수행되는 것처럼 보일 뿐이다.
    • 기억장치 관리 기법과 CPU 스케줄링 기법이 필요하다.
    • 하나의 프로그램이 주변장치의 처리를 기다리는 동안 다른 프로그램이 CPU에서 실행될 수 있게 함으로써 전체적인 시스템의 처리 효율을 높이는 방식
  • 다중 처리 시스템
    • 하나의 CPU에 문제가 생기더라도 다른 CPU가 처리를 계속할 수 있으므로 신뢰도를 높일 수 있음
    • 일반적으로 여러 개의 프로세서가 하나의 운영체제에 의해 관리되고 버스나 기억장치를 공유하여 서로 통신하며 작업을 처리하므로 작업 처리 속도도 빠름
  • 다중 작업
    • 한 사람의 사용자가 한 대의 컴퓨터로 2가지 이상의 작업(task)을 동시에 처리하거나 프로그램들을 동시에 구동시키는 기능
  • 실시간 처리 시스템
    • 실시간 처리 시스템은 자료가 발생한 단말기를 통해 그 처리가 가능하므로 사용자가 편리
    • 처리 시간이 단축되고 처리 비용도 절감
    • 시스템에 오류가 발생하면 심각한 문제가 발생할 수 있으므로 다소 위험성이 있는 시스템
    • 예) 미사일 방어 시스템, 좌석 예약 시스템, 은행의 예금 업무
  • 분산 처리 시스템
    • 여러 개의 자료 저장 장소와 시스템을 이용하여 동시에 여러 작업을 수행함으로써 성능이 향상
    • 자료도 복사본을 여러 곳에 윶할 수 있어 신뢰도를 높일 수 있음
    • 네트워크에 새로운 처리 시스템을 추가함으로써 쉽게 시스템 확장도 가능
    • 장점을 잘 살리려면 자료 저장장소와 시스템을 단순히 물리적으로 연결해서는 안 되고 연결된 여러 자원과 시스템을 효율적으로 이용할 수 있는 소프트웨어와 시스템의 논리적인 설계가 반드시 필요
728x90
반응형

'컴퓨터 개론' 카테고리의 다른 글

컴퓨터 구조  (0) 2022.04.26
디지털 정보의 표현  (0) 2022.04.25
    '컴퓨터 개론' 카테고리의 다른 글
    • 컴퓨터 구조
    • 디지털 정보의 표현
    goblin
    goblin

    티스토리툴바