CS

[CS / 운영체제] 3.1 운영체제와 컴퓨터

개발하는 감자입니다 2024. 5. 21. 21:26
728x90

 

안녕하세요! 개발감자입니다.

오늘은 CS의 운영체제 중에서도 3.1 운영체제와 컴퓨터 에 대해서 정리해보았습니다.

 

3.1 운영체제와 컴퓨터

운영체제 : 하드웨어와 소프트웨어를 관리

컴퓨터 : cpu, 메모리 등으로 이루어짐

 

운영체제(Operating System)

  • 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스
  • 한정된 메모리나 시스템 자원을 효율적으로 분배
  • 운영체제와 유사하지만, 소프트웨어를 추가적으로 설치할 수 없는 것 : firmware(펌웨어)

 

3.1.1 운영체제의 역할과 구조

  1. 운영체제의 역할
    1. CPU 스케줄링과 프로세스 관리
      • CPU 소유권을 어떤 프로세스에 할당할 것인가?
      • 프로세스의 생성, 삭제 , 자원 할당 및 반환 관리
    2. 메모리 관리
      • 한정됨 메모리를 어떤 프로세스에 얼만큼 할당할 것인가?
    3. 디스크 파일 관리
      • 디스크 파일을 어떠한 방법으로 보관할지 관리
    4. I/O 디바이스 관리
      • 마우스, 키보드와 컴퓨터 간의 데이터 주고 받는 것을 관리
  2. 운영체제의 구조

→ 빨간색으로 지정한 부분이 운영체제를 칭함

  1. 유저프로그램
  2. GUI
  3. 시스템콜
  4. 커널
  5. 드라이버
  6. 하드웨어

리눅스는 GUI가 없는 대신 CUI만 존재하기도 함.(CUI : 그래픽이 아닌 명령어로 처리하는 인터페이스)

 

  • GUI
    • 아이콘을 마우스로 클릭하는 단순한 동작으로 컴퓨터와 상호작용할 수 있는 사용자 인터페이스
  • 시스템콜
    • 운영체제가 커널에 접근하기 위한 인터페이스 (추상화 계층)유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 씀
    • 컴퓨터 자원에 대한 직접 접근 차단 및 보호 기능
    • 네트워크 통신, 데이터베이스와 같은 낮은 단계의 영역 처리에 대한 부분을 많이 신경쓰지 않고 프로그램 구현 가능
    • I/O 요청 : 입출력 함수, 데이터베이스, 네트워크, 파일 접근 등에 관한 일
    • modeit (0:커널모드 1:유저모드)
      • I/O 디바이스는 운영체제를 통해 제어
      • 유저기반으로는 제어 불가능 (커널모드로만)
      • 시스템콜 작동 시, modeit을 참고하여 모드 구분
      • 상황 예시 : 카메라 이용
        • 유저모드 : 카메라 이용 버튼 클릭 → 유저모드 : 시스템 콜 호출 (modeit 1→0) → 커널모드 : 카메라 자원을 이용한 로직 수행 → 유저모드 : 이후 로직 실행(modeit 0→1)
  • 드라이버
    • 하드웨어를 제어하기 위한 소프트웨어

3.1.2 컴퓨터의 요소

CPU, DMA 컨트롤러, 메모리, 타이머, 디바이스 컨트롤러 등으로 이루어짐

  1. CPU
    • 산술 논리 연산 장치, 제어 장치, 레지스터로 구성되어 있는 컴퓨터 장치
    • 인터럽트에 의해 단순히 메모리에 존재하는 명령어 해석 및 실행
    • 운영체제(관리자)의 커널이 프로그램을 메모리에 올려 프로세스 실행 → CPU 가 이를 처리
    1-1. 제어 장치 (CU, Control Unit)
    • 프로세스 조작을 지시하는 CPU의 한 부분
    • 입출력 장치 간의 통신 제어 및 명령어들을 읽고 해석 → 데이터 처리를 위한 순서를 결정
    • 레지스터 : CPU 안에 있는 매우 빠른 임시기억장치
    • CPU는 데이터를 저장할 수 없어 레지스터를 거쳐 데이터를 전달함
    1-2. 산술논리연산장치 (ALU, Aritmetic Logic Unit)
    • 덧셈, 뺄셈 같은 두 숫자의 산술 연산과 배타적 논리합, 논리곱 같은 논리 연산을 계산하는 디지털 회로
    1-3. CPU의 연산 처리
    1. 제어장치가 메모리에 계산할 값 로드 (레지스터에도 로드)
    2. 제어장치가 레지스터에 있는 값을 계산하라고 산술논리연산장치에 명렬
    3. 제어장치가 계산된 값을 다시 레지스터에서 메모리로 계산한 값을 저장
    • 인터럽트
      • 어떤 신호가 들어왔을 때 CPU를 잠시 정지시키는 것
      • 발생하는 경우 : I/O 디바이스로 인한 인터럽트, 0으로 숫자를 나누는 산술연산에서의 인터럽트, 프로세스 오류
      • 인터럽트 발생시 → 인터럽트 핸들러 함수가 모여 있는 인터럽트 터로 가 인터럽트 핸들러 함수 실행
      • 인터럽트 핸들러 함수 : 인터럽트를 핸들링하기 위한 함수
      • 인터럽트 간의 우선순위에 따라 실행
      • 종류
        • 하드웨어 인터럽트 : 키보드, 마우스 연결 등의 IO 디바이스로 인한 인터럽트
        • 소프트웨어 인터럽트(트랩) : 프로세스 오류 등으로 시스템 콜 호출 시 발동
  2. DMA 컨트롤러
    • I/O 디바이스가 메모리에 직접 접근할 수 있도록 하는 하드웨어 장치
    • CPU에만 너무 많은 인터럽트 요청이 들어옴 → CPU 부하를 막고 일을 부담해줌
    • CPU와 동시에 같은 일을 하는 것을 방지함
  3. 메모리(memory)
    • 전자회로에서 데이터나 상태, 명령어 등을 기록하는 장치
    • RAM(Random Access Memory)라고도 함
    • 기억을 담당
  4. 타이머
    • 몇 초 안에 작업이 끝나야 한다는 것을 정함 → 특정 프로그램에 시간 제한을 다는 역할
    • 시간이 많이 걸리는 프로그램이 작동할 때에 제한을 걺
  5. 디바이스 컨트롤러
    • 컴퓨터와 연결되어 있는 IO디바이스 들의 작은 CPU

 


 

 

 

면접을 위한 CS 전공지식 노트 | 주홍철 - 교보문고

면접을 위한 CS 전공지식 노트 | 디자인 패턴, 네트워크, 운영체제, 데이터베이스, 자료 구조, 개발자 면접과 포트폴리오까지! CS 전공지식 습득과 면접 대비, 이 책 한 권이면 충분하다! 개발자 면

product.kyobobook.co.kr

 

이 포스팅은 면접을 위한 CS 전공지식 노트를 기반으로 작성되었습니다.

728x90
반응형