본문 바로가기

KNU Freshman/컴퓨터학개론

(6)-2 운영체제의 주요 기능

운영체제와 커널(Kernel)
 넓은 의미에서의 운영체제
 윈도우, 리눅스, 맥 OS과 같이 널리 일반적으로 사용
 운영체제의 핵심 기능을 비롯하여 시스템 프로그램, 라이브러리, 서비스, GUI 등을 포함
 
 좁은 의미에서의 운영체제
 CS 학문에서의 운영체제는 커널을 말함
 프로그램들을 구동하고 컴퓨터를 제어하는 프로그램
 
 커널이란(Kernel)하드웨어를 제어하고 중재하는 역할
 하드웨어에 대한 추상화 제공
 시스템 자원을 적절히 배분하는 역할
 사용자, 프로그램, 운영체제를 보호하는 역할
 기타 등등

 
이중모드와 시스템 호출
 
• 이중모드
   - 프로그램은 컴퓨터 자원에 직접 접근할 수 없으며, 운영체제를 통해서 대신 접근할 수 있음
   -  CPU가 명령어를 실행하는 모드를 사용자 모드와 커널모드로 나누어 실행
      •사용자 모드: 운영체제 서비스를 제공받을 수 없음
      •커널 모드
          * 운영체제 서비스를 제공받음
          * 자원 접근이 자유로움
          * 그러므로, 커널모드에서의 실행은 신중해야 함(보호 필요)
          *시스템 호출을 통해 모드 전환 가능
 

 
• 시스템 호출
 사용자 모드와 커널모드 사이의 인터페이스 역할
 커널이 하드웨어와 관련된 일을 처리하여 프로그래밍을 더욱 쉽게
 커널이 자원 접근을 통제하며 시스템 호출을 통해서만 가능하므로 안전한 프로그래밍이 가능함
 운영체제의 기능이 변경되어도 시스템 호출은 동일하므로 프로그램의 이식성이 높아짐
 
시스템 호출의
프로세스 제어 실행, 종료, 대기, 메모리 할당
파일 관리 파일 생성, 삭제, 열기, 닫기
장치 관리 장치 사용 요청 해제, 읽기, 쓰기
정보 관리 날짜, 시간, 프로세스 정보, 파일 정보
통신 통신 채널 생성, 메시지 전송/수신

모드 전환
사용자 모드 -> 커널 모드 전환
  – 외부 인터럽트
    • 타이머, I/O 장치, 네트워크 카드, 키보드, 마우스
  – 내부 인터럽트(트랩)
    • 의도적 발생: 시스템 호출을 통해서 커널 모드로 진입
    • 비의도적 발생: 장애/예외 발생시 커널 모드로 진입
        – : 0으로 나누는 경우
커널 모드 -> 사용자 모드 전환
    – 새로운 프로세스가 생성된 이후
    – 인터럽트, 예외, 시스템호출에 대한 처리가 끝난 이후
    – 문맥 교환이 일어난 이후
 
인터럽트와 트랩
인터럽트: 하드웨어에 의해 발생
트랩: 소프트웨어에 의해 발생
 
프로세스
프로세스
   – 메모리에 탑재되어 CPU에서 실행되고 있는 프로그램
   – , 프로그램의 인스턴스(동작 중인 상태)
프로세스의 구조
   – 메모리
      • 실행 가능한 이미지: 프로그램 코드와 전역 변수
      • 스택: 지역 변수
      • : 포인터 변수
레지스터
    • 프로그램 카운터(Program counter): 다음에 실행되어야 명령어의 위치
    • 스택 포인터(Stack pointer): 함수에 대한 정보를 관리

 

프로세스의 상태
준비: 실행될 준비가 되었으나 운영체제에 의해 선택되지 못하여 실행되지 않은 상태
 실행: CPU에서 실행되는 상태
대기: 일부 작업을 수행하고 I/O 발생하여 CPU실행이 중단된 상태. 그러므로 다른 프로세서는 동안 CPU사용할 있음
 

 

문맥 교환(Context Switching)
멀티 프로그래밍에서 현재 프로세스가 중단 되고 다른 프로세스가 실행되는
시분할 시스템에서는 주기적으로 이러한 프로세스 전환이 발생함
   – 모든 프로세스가 평등하게 CPU 작업 시간을 받을 있게
 
문맥 교환을 위한 절차
   – 현재 프로세스의 실행 정보를 저장함
        • Process Control Block(PCB) 라고 하는 자료 구조에 현재 실행 정보를 저장
               – 프로세스ID, 레지스터, 프로세스 상태(실행, 대기, 준비 ), 스케줄링 정보, 메모리 정보, 사용한 파일, 입출력장치 목록 저장
  – 다음 실행될 프로세스 선택 (Scheduling)
  – 선택된 프로세스에서 프로세스 실행 정보를 읽어옴
  – 프로세스 실행 상태를 복구하여 프로세스 시작
 
문맥교환사용자 모드에서 커널 모드로의 전환이 필요함
커널 모드에서 프로세스의 상태를 읽고 저장할 있으며
프로세스를 중단 시작할 있음

'KNU Freshman > 컴퓨터학개론' 카테고리의 다른 글

(8) 가상 메모리  (0) 2024.04.16
(7) 운영체제에서의 CPU 스케줄링  (1) 2024.04.15
(6)-1 컴퓨터 구조와 운영체제  (0) 2024.04.15
(5) 프로그램의 번역  (0) 2024.04.11
(4) 프로그램 구조  (0) 2024.04.11