운영체제(OS) & Network

운영체제

jih0ssang 2023. 9. 4. 15:16

참고 사이트

영체제 01 운영체제의 개요 | KOCW 이화여대 반효경

https://m.blog.naver.com/ilikebigmac/222009981745

 

    컴퓨터 시스템 구조

     

    • 컴퓨터 내부  →HW
      • CPU, Memory
    • 외부(I/O device)
      • i/o device: disk, mouse, keyboard etc.  →HW
      • i/o Controller: I/O device를 전담하는 작은 CPU 역할 HW
        • CPU의 요청을 컨트롤러가 대신 받아, I/O device에게 명령을 내린다.
      • Device driver(장치구동기) SW
        • I/O Device를 인식하는 방법에 대한 내용이 적혀있는 파일
        • OS가 driver 를 통해 I/O Device를 인식

    i/o 작업은 많은 시간이 소요되므로, cpu역할을 하는 i/o Controller가 대신 i/o device에게 내리는 명령을 처리한다. 그동안의 cpu는 다른 프로세스와 일을 하면 된다

     

    일반 Disk에는 일반적으로 컨트롤러가 없다.

    서버의 마더보드에 컨트롤러가 있다.

    스토리지에는 Disk + 컨트롤러 구성

     

    사담이지만, 최근에 노트북 사용 중에 마우스가 스스로 좌클릭하는 현상이 일어났다....
    마우스가 문제인 줄 알았는데 USB 뽑아도 그 현상이 계속 일어나길래..
    드라이버가 문제구나 싶었다..... ㅠㅠ

     

     

     

    Mode bit

    사용자 모드(User mode, Mode bit = 0)

    • CPU가 제한된 권한을 가진다.
    • 프로세스가 오류를 일으켜도 시스템 전체에 영향을 미치지 않도록 격리

    커널 모드 또는 슈퍼바이저 모드(Kernel Mode, Mode bit = 1)

    • 특권 명령 가진다.
    • CPU가 운영 체제 또는 시스템 소프트웨어가 실행되는 모드
    • 커널 모드 또는 슈퍼바이저 모드에서 CPU는 시스템 리소스 및 하드웨어에 대한 무제한 액세스 권한을 가진다. 이 모드에서는 OS가 실행중이고, 하드웨어를 직접 제어하고 관리

    ** 사용자 프로그램에게 CPU를 넘기기 전에 Mode bit을 1로 셋팅

    ** Interrupt나 Exception 발생시 하드웨어가 Mode bit을 0로 셋팅

     

     

    시스템 콜(System call)

    • 사용자 프로그램이 전체 권한을 가진 OS의 서비스(도움)를 받기 위해 커널 함수를 호출하는 것.
    • 모든 I/O는 특권 명령(프로그램 명령X, OS 명령 O)이다. 사용자 프로그램이 I/O에게 명령할 수 없으므로 OS에게 대신 부탁해야하므로, 스스로 OS에게 불러서 요청해야 한다.
    1. 프로그램이 스스로 Interrupt 발생시킨다.
    2. PC=0 OS를 실행하여 대신 I/O Controller에게 I/O 명령을 내린다.

     


    OS

    • 응용프로그램의 수행을 제어, 사용자와 하드웨어 간 인터페이스 역할

     

    역할

    • 확장성
      • 다양한 HW(CPU, 모니터, I/O Device 등) 를 연결하기 위해 개발
    • 프로그램 개발의 편의성 
      • HW 간 인터페이스 역할을 수행하여 HW를 이해하는 수고를 줄여줌
    • 안정적인 하드웨어 자원 활용
      • Multi-Tasking 등 CPU의 순차처리 방식의 효율적 활용

     

    목적

    • 컴퓨터 시스템의 한정된 자원을 효율적으로(최대한의 성능) 관리
    • OS는 Resource Sharing을 할 수 있도록 한다.
    • CPU 스케줄링: 실행중인 프로그램에게 짧은 시간씩 CPU를 번갈아 할당
      • 어떤 프로그램에게 CPU를 사용하도록 줄까?
      • 얼만큼(시간) 사용하도록 줄까?
      • 무한정으로 쓰지 못하도록 하드웨어적인 장치 필요하다
    • 메모리 관리: 한정된 메모리를 어떻게 쪼개어 쓰지?
    • Interrupt, 캐싱: 빠른 CPU와 느린 I/O 장치 간 속도 차를 어떻게 극복하지?

     

    구성요소

    구성요소 설명
    Kernel
    • HW와 OS 간 인터페이스 역할
    • CPU 스케줄링
    • 부팅 후 종료시까지 메모리에 적재
      각종 자원(cpu,mem,disk) 관리
    Shell
     
    • 사용자와 OS 간 인터페이스 역할
    • CLI와 GUI 형식 존재
    FileSystem 물리적 디스크의 용량을 효율적으로 사용하기 위한 데이터 구조   

     

    커널(Kernel)

    • 프로세스 처리에 필요한 하드웨어 자원을 관리하는 OS의 핵심 부분
    • 서버의 부팅 시부터 종료시까지 계속 메모리에 상주해있는 프로그램

     

    역할

    • 스케줄링
    • 하드웨어 추상화(가상화): 어떤 회사에서 디스크를 만들었던지 똑같이 그 디스크를 사용할 수 있도록 종속되지 않기 위해 가상화 사용
    • 보안: 사용자는 접근 못하도록 영역 분리

     

    가상화 유형       

    HW 가상화 얼만큼 할거야?

     

      Full Virtualization(전 가상화)  Para Virtualization(반 가상화)
    대표 플랫폼 VMWare Xen
      모든 HW를 전부 가상화하여 논리적으로 쪼갬  
      CPU에서 가상화 지원되어 Binary Translation 가능  

     

    * 대표 플랫폼 둘 다 전 가상화, 반 가상화 모두 지원한다.

    전 가상화

     

    반 가상화

     

     

     

     

    프로세스는 시스템 호출(System Call)을 통해 커널을 호출한다.

    하드웨어는 인터럽트를 통해 커널에 신호를 보낸다.

    구분 설명
    단일형 커널(모놀리식 커널)
    • 복잡한 하나의 큰 단일 모듈로 구성
    • 한 군데에 몰려있으므로 처리율은 좋음
    • OS가 하는 일을 한 Kernel에 때려 박음
    마이크로 커널
    • 작고 간단한 커널로서 기능은 외부 서비스로 분산
    • 분산되어있어 안정성, 보안 ↑
    • but 전반적 성능 저하
    혼합형 커널(하이브리드 커널) 모놀리식커널 + 마이크로커널

     

    커널 파라미터

    • 커널에서 사용하는 변수
    • Windows에서는 “레지스트리 값”이라고 부르며, 레지스트리 편집기에서 관리

     

    커널 주소 공간

    code: 함수 호출, 리턴 | data: 함수 내 전역 변수 | stack: 시스템콜, 인터럽트 처리 코드

    PCB(Process Control Block): 현 프로세스 자료구조 관리 (프로세스10개=PCB 10)

     

     

     

    사용자 프로그램이 사용하는 함수(function)

    • 사용자 정의 하수
      • 자신의 프로그램에서 정의한 함수
    • 라이브러리 함수
      • 자신의 프로그램에서 정의하지 않고 갖다 쓴 함수
      • 자신의 프로그램의 실행 파일에 포함되어있다.
    • 커널 함수
      • 운영체제 프로그램의 함수
      • 커널 함수의 호출 = 시스템콜

     

    Shell

    구분 OS Shell
    CLI Linux Bourne Shell
    C Shell
    Korn Shell
    Windows cmd.exe
    PowerShell
    GUI Linux X Windows
    Windows 탐색기

     

     

    파일 시스템

    OS fs 설명 최대 크기
    (fs)
    최대 크기
    (file)
    최대 길이
    (file name)
    Linux ext4
    • 중소규모 파일시스템에 적합
    • 파일 시스템 및 파일 크기 제한 O
    • 시스템 Crash 시, 데이터 손실 가능성 O
    약 1EB 약 16TB 255 Bytes
    xfs
    • 대용량 파일 시스템 및 대규모 작업에 적합
    • 대규모 파일 시스템 및 파일 처리 가능
    • 강력한 메타데이터 일관성 제공
    약 16EB 약 8EB 255 Bytes
    Windows FAT32
    • 작은 규모의 저장 장치(USB, 메모리카드) 또는 파일 시스템에 적합
    • 최대 파일 크기는 대략 4GB로 제한
    약 2TB 약 4GB 255 Bytes
    NTFS
    • 대용량 서버, 개인 및 비즈니스용 컴퓨터에 적합
    • 매우 큰 파일 크기(테라바이트 이상)와 대용량 스토리지 지원
    약 256TB 약 16TB 255 Bytes

     

    기능

    • 메모리 관리: 한정된 메모리를 어떻게 쪼개어 쓰지?
    • 빠른 CPU와 느린 I/O 장치 간 속도 차를 어떻게 극복하지? → Interrupt, 캐싱
      • Interrupt
        • CPU는 자기 일 하고, i/o 장치들이 작업 다 끝나면 CPU에게 인터럽트 걸어 작업종료를 알림. 인터럽트하면 무조건 CPU는 OS에게 돌아감.
        • HW Interrupt: 하드웨어가 발생시킨 인터럽트
        • SW Interrupt: Exception(프로그램이 오류 범함. ex 본인이 권한이 없는 명령어 실행), System call

     

    CPU 스케줄링

    • 선입선출
    • CPU, 디스크, 키보드는 큐에 줄을 서서 작업 처리

     

    디스크 스왑

    • 메모리가 꽉 찼을 때, 디스크를 메모리처럼 사용

     

    메모리 관리

    각각의 프로세스는 독립된 메모리 공간을 갖는다. OS만이 OS 메모리 영역과 사용자 메모리 영역의 접근에 제약받지 않는다.

     

     

    '운영체제(OS) & Network' 카테고리의 다른 글

    프로세스(Process) (1)  (0) 2023.09.18
    쓰레드(Thread)  (0) 2023.09.14
    스케줄러(Scheduler)  (0) 2023.09.13
    프로세스(Process) (2)  (0) 2023.09.13
    데드락(Deadlock)  (0) 2023.09.05