ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [운영체제] 01. OS
    CS/OS 2023. 4. 17. 04:26

    01. OS

    운영체제 : 컴퓨터를 잘 사용하기 위한 소프트웨어 

    한정된 자원을 효율적으로 사용하기 위해 , 컴퓨터의 자원을 독점적으로 관리

    - 프로세스 , 메모리, 입출력 관리 

    - 자원을 추상화(하드웨어를 소프트웨어의 프로세스로)하고 관리, 인터페이스 제공 

    - 장치에 전원이 들어오면 가장 먼저 저장장치 특정 영역에서 이 소프트웨어 실행되도록 약속 되어있음 

    역할             목표
    자원관리 효율성 
    자원보호 안정성 
    하드웨어 인터페이스 확장성 
    사용자 인터페이스 편리성

    - 응용프로그램과 하드웨어 사이 플랫폼 역할 

    1. 메모리 관리 : 한정된 메모리에 어떤 작업 올릴지 

    2. 프로세스 관리 : 어떤 작업 언제 처리할지 

    3. 파일시스템 관리(디스크) : 작업 어디에 보관할지 

    4. 그외 (외부장치 고려 운영체제 기능 확장)

    보안 : 외부사용자 

    네트워크 : 네트워크지원장치 및 프로토콜의 지원, 리소스제어 

    장치 : 입출력관리 장치

    기타 : 이상없이 잘 실행되는지, 다른 사용자 있는지 

     

    운영체제 없는 경우 

    (작동할수 있으나, )

    1. 한정된 기능과 제어 어려움

    2. 추가적인 하드웨어 장치 연결 소프트웨어 설치 불가

    3. 인터페이스가 사용하기 어려움

    4. 장애대응 어려움

    장점 1. 전용 하드웨어 성능 높음 2. 보안상 안전 3. 불편한 인터페이스 훈련 x 사용자로부터 보호 

     

     

    운영체제 발전배경 

     

    고정프로그래밍(논리회로)

    하나의 기계 하나의 기능 , 새로운 기능 구축 어렵고 시간 걸림 

    ↓ ↓ ↓ ↓ ↓

     

    일괄작업 시스템 (CPU/메모리; 입출력(장치) 기능)

    내장 프로그래밍 

    : 전문연산장치(cpu)와 로직 저장장치(메모리) 분리 -> 폰노이만 구조, 현대 컴퓨터의 아키텍쳐 

    입출력 과정에서 운영체제 개념 첫등장 

     

    단점 1. 한번에 하나씩 처리 2. 모든 작업 한꺼번에 처리 3. 프로그램 실행 중간 데이터 입력 및 수정 불가 (중간에 입력값 제어하거나 결과 확인 못함 , 교체하고 읽는 시간도 오래 걸림...)

     ↓ ↓ ↓ ↓

     

    대화형 시스템 및 다중 프로그래밍(키보드/모니터, 시분할시스템; 프로세스, 메모리, 파일관리 등)

    모니터 및 키보드 등장 

    프로그램 진행 중 사용자로부터 입력 받기 가능 

    다중프로그래밍 방식 

    : 하나의 cpu 여러 작업 동시에 (cpu사용시간 분할해 동시에 실행되는 것처럼 보이게 함 )

    장점  1. cpu 대기시간 줄고 2. 활용률 처리율 증가 

     ↓ ↓ ↓ ↓

     

    네트워크 기반 시스템(네트워크, 보안, 기타관리 등 )

    : 네트워크 등장으로 자원이 장치 내부에서 밖까지 연결 

    - 하나의 고성능 장치 또는 특정 서비스 여러 유저 동시 사용 (클라이언트 /서버)

    - 네트워크 상에 분산되어있는 여러 컴퓨터로 작업 처리하고 결과 종합 (분산시스템)

    장점 1. 컴퓨터 간 정보 전송 경제적 2. 현실적 수준의 전환 

    외부장치 고려한 운영체제 기능 확장 필요 (보안, 네트워크, 장치, 기타)

     

    기타 시스템 

     

    1. P2P시스템 : 특정 서버 과부화 해결( 단일장애 문제 보완), 서버 거치지 않고 사용자끼리 직접연결 

    동기화(업데이트 언제 동기화할지), 협의(어떤데이터 먼저 받을지) 문제 

     

    2. 가상화시스템 : 컴퓨터 자체 추상화 , 컴퓨터 위에서 컴퓨터를 소프트웨어로 돌리는 덕 

    장점 1. 독립적인 공간 지원 2. 물리시스템과 다른 환경 지원

    모바일 운영체제 ->네트워크, 전성비 

    임베디드 운영체제 -> Optimal function

    실시간 운영체제 -> RTOS

    데드라인 시간 이내 처리 보장 -> timing guarantee

     

    운영체제의 구조 

    커널  : 운영체제의 핵심( 좁은의미로 이것만 지칭)

    프로세스관리, 메모리관리, 저장장치 관리 와 같은 핵심기능 

    응용프로그램에서 커널로 하드웨어 자원 이용 요청

     

    인터페이스  : 커널에 명령을 전달하고, 실행결과 알려줌

    API , syscall, Shell, CUI

     

    디바이스 드라이버 : 하드웨어에 대한 인터페이스 

     

    커널과 인터페이스 

    커널 외부로 직접 노출 안되도록 User-mode(bit1), kernel- mode(bit0) 분리 

    Syscall : 커널이 자신의 기능(입력값검증, 권한확인, 작업순서 제어등) 함수형태로 제공해주는 것 -> 커널 보호 

    API를 통해 만들어진 프로그램들 최종적으로 이 시스템 콜 호출하는 형태 

     

    커널의 구조 

    단일형 커널 : 커널의 모든 기능 하나로 (장점 속도 / 단점 단일 장애 문제, 클수록 관리 어려움)

    계층형 커널 : 비슷한 기능 가진 모듈별로 계층 만듦

    마이크로 커널  : 커널은 아주 기본적인 기능만 제공, 대부분 user-level로 이식 (장점 만들고 이해하기 쉬움, 이식성 , 디버깅 쉬움 / 단점 속도 )

     

    가상머신 

    운영체제마다 제공하는  API및 Syscall 모양 달라서 프로그램 호환 문제 발생 

    장점 1. 운영체제 간 이식성 2. 하나의 프로그램, 다양한 환경 지원 3. 일종의 API 호환 레이러 

     

     

    'CS > OS' 카테고리의 다른 글

    [운영체제] 05. 스케쥴링  (1) 2023.05.16
    [운영체제] 04. 스레드  (0) 2023.05.16
    [운영체제] 03. 프로세스  (1) 2023.05.16
    [운영체제] 02. 컴퓨터 아키텍쳐  (0) 2023.05.16
Diseñada por Tistory.