CS

CS_운영체제_운영체제와 컴퓨터

99duuk 2024. 6. 13. 01:58


운영체제의 역할과 구조

운영체제의 역할

1. CPU 스케줄링과 프로세스 관리

    - cpu 소유권을 어떤 프로세스에게 할당할지 결정.

    - 프로세스의 생성과 삭제, 자원 할당 및 반환 관리.

    - 스케줄링 알고리즘 : FIFO, SJF, RR, Priority Scheduling 등

   - 문맥 교환(Context Switching): 현재 프로세스 상태를 저장하고, 새로운 프로세스 상태를 로드하는 과정

   - 프로세스 간의 공유 자원 접근과 통신 관리.

 

 

2. 메모리 관리

    - 한정된 메모리를 어떤 프로세스에게 얼만큼 할당할지 관리 

    - 메모리 영역의 할당과 해제.

    - 각 메모리 영역 간의 침범 방지

    - 가상 메모리 기능을 통해 메모리 효율성 극대화

 

 

3. 디스크 파일 관리 

    - 디스크 파일의 저장 및 관리

   - 파일 시스템 종류: FAT, NTFS, ext4

    - 파일의 생성, 수정, 제거, 공유, 복구

    - 주기억장치와 보조기억장치 간의 파일 전송

    - 파일 디스크립터: 파일과의 연결을 유지하는 데이터 구조

    - 디렉토리 구조: 트리 구조, 그래프 구조

 

4. I/O 디바이스 관리

    - 마우스, 키보드 등의 I/O 디바이스와 컴퓨터 간 데이터 전송 관리

    - 시스템의 자원, 하드웨어를 관리하여 응용 프로그램이 하드웨어를 사용할 수 있게 함

   - 디바이스 드라이버를 통해 다양한 하드웨어를 추상화 및 관리

 

5. 네트워킹

    - 네트워크 프로토콜(TCP/IP 등)을 지원하여 인터넷 연결 및 네트워크 기능 제공

    - 다양한 네트워크 프로토콜을 지원하여 응용 프로그램의 네트워크 사용을 지원

 

6. 사용자 관리

    - 다중 사용자 환경을 지원하여 각 사용자 계정을 관리.

    - 사용자별 프라이버시와 보안을 위한 개인 파일 접근 권한 관리

    - 파일이나 시스템 자원에 대한 접근 권한 지정 기능 제공

 

 

 

 

 

운영체제의 구조

운영체제는 HW와 사용자 프로그램 간의 interface 역할을 한다. 

GUI가 없는 CUI 기반의 리눅스 서버도 존재한다.

 

시스템 콜

     - 운영체제가 커널에 접근하기 위한 인터페이스

     - 유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 사용

     - 유저 모드에서 커널 모드롤 전환되어 실행되며, 컴퓨터 자원에 대한 직접 접근을 차단하고 프로그램을 보호

     - (시스템 콜 유형: 파일 조작(open, read, write), 프로세스 제어(fork, exec, wait), 디바이스 조작(ioctl))

 

modebit

      - 유저 모드(1)와 커널 모드(0)을 구분하는 플래그

      - 유저 모드에서는 자원 접근이 제한되고, 커널 모드에서는 모든 자원에 접근 가능합니다.

커널 : 운영체제의 핵심 부분. 시스템콜 인터페이스를 제공하며 보안, 메모리, 프로세스, 파일 시스템, I/O 디바이스, I/O 요청 관리 등 운영체제의 중추적인 역할을 한다.

 

 

 

컴퓨터의 요소

CPU (Central Processing Unit)

     - 구성 : 산술논리연산장치(ALU), 제어장치(CU), 레지스터

     - 인터럽트에 의해 명령어를 해석하고 실행한다.

 

제어장치 (Control Unit)

     - 프로세스 조작 지시

     - 입출력 장치 간 통신 제어, 명령어 읽고 해석

 

레지스터

     - CPU 안의 임시기억장치

     - 연산 속도가 메모리보다 빠름

     - 데이터 흐름 : SSD/HDD -> RAM -> Cache -> Register

 

산술논리연산장치 (ALU)

     - 산술 연산과 논리 연산을 처리하는 디지털 회로

 

인터럽트

기존 cpu가 모든 권한을 가지고 모든 장치를 관리했다. 

터치스크린을 터치할 때까지 while{}처럼 계속해서 대기했기 때문에 비용이 많이 발생했고 비효율적이었다.

 

이후 인터럽트 방식을 사용하면서 입출력 디바이스도 권한을 갖게 되었다.

마치 onClick()처럼 입출력 디바이스도 이벤트에 대응할 수 있다. 

 

 

     - CPU가 현재 수행 중인 작업을 중단하고, 예기치 않은 이벤트나 특정 신호에 대응하기 위해

         즉시 인터럽트 핸들러(또는 인터럽트 서비스 루틴)을 실행하는 매커니즘 (운영체제가 관리)

더보기

 

     - 과정

          1. 인터럽트 발생

          2. 현재 작업 상태 저장

          3. 인터럽트 서비스 루틴 처리

          4. 이전 상태 복구 및 재개

 

     ex)

          1. 사용자 키보드 눌렀을 때, 키보드 컨트롤러 인터럽트 발생시킴

          2. CPU는 현재 실행중인 프로그램의 상태(레지스터, 프로그램 카운터 등)을 저장하고 (나중에 원래 작업을 재개할 때 필요함)

               인터럽트 핸들러로 이동

          3. 키보드 입력 처리하는 인터럽트 핸들러 실행

               ex) 키보드에 입력된 데이터를 메모리의 특정 위치에 저장하거나, 사용자에게 출력

          4. 루틴 완료, 이전 상태 복구 및 재개, CPU는 저장된 작업 상태 복구. 

 

DMA 컨트롤러 (Direct Memory Access Controller)

      - I/O 디바이스가 메모리에 직접 접근할 수 있도록 하는 하드웨어 장치

      - CPU의 부하를 줄이고, 동시에 작업을 방지

 

메모리

     - 전자회로에서 데이터, 상태, 명령어 등을 기록하는 장치(RAM)

     - CPU는 계산, 메모리는 기억 담당

 

타이머 

     - 프로그램의 실행 시간을 제한하여 효율적으로 관리

 

디바이스 컨트롤러

     - 컴퓨터와 연결된 I/O 디바이스를 관리하는 작은 CPU

 

 

 

 

 

운영체제란 무엇인가? 

정의

   - 운영체제(OS, Operation System)은 HW와 SW 자원을 효율적으로 관리하고,

     사용자와 하드웨어 간의 인터페이스를 제공하는 시스템 SW이다.

 

즉, 운영 체제는 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어라고 할 수 있다.

 

OS와 어플리케이션

     - 애플리케이션은 특정 운영체제에 맞춰 개발

     - 운영체제가 제공하는 자원만 사용

 

운영체제의 종류

     - Windows, Linux, UNIX, MS-DOS 등

     - 단일 작업(MS-DOS)과 다중 작업(Windows, UNIX)으로 구분

     - 단일 사용자(Windows)와 다중 사용자(UNIX, NT Server)로 구분

 

운영체제의 목적

     - 처리능력 향상 (Throughput) : 일정 시간 내 시스템이 처리하는 일의 양

      - 반환시간 단축 (Turnaround Time) : 작업 의뢰부터 완료까지 걸린 시간

     - 사용 가능도 향상 (Availability) : 필요 시 사용 가능한 정도

     - 신뢰도 향상 (Reliability) : 주어진 문제를 정확하게 해결하는 정도 

 

운영체제의 기능

    1. 자원 관리: 프로세서, 메모리, 입출력 장치, 파일 및 정보 관리

    2. 자원 스케줄링 

    3. 사용자와 시스템 간 인터페이스 

    4. HW와 네트워크 관리

    5. 데이터 관리 & 공유 기능

    6. 오류 검사 & 복구

    7. 자원 보호 기능

    8. 입출력 보조 기능 

    9. 가상 메모리 

    

 

 

 

운영체제 용어

     - 멀티태스킹: 하나의 프로그램이 끝나기 전에 다른 프로그램이 시작 가능

     - 멀티프로그래밍 : 메모리에 여러 프로그램이 동시에 올라가는 방식

     - 시분할 시스템: CPU 시간을 분할하여 여러 작업을 처리

     - 멀티프로세싱 : 여러 프로세스 동시에 실행

     - 멀티코어 : 하나의 컴퓨터에 여러 CPU 코어가 존재 

 

 

 

 

'CS' 카테고리의 다른 글

CS_운영체제_프로세스 & 스레드  (1) 2024.06.13
CS_운영체제_메모리  (0) 2024.06.13
CS_네트워크_로드밸런싱  (0) 2024.06.07
CS_네트워크_대칭키 vs 비대칭키  (0) 2024.06.07
CS_네트워크_TCP 흐름제어 & 혼잡제어  (1) 2024.06.03