컴퓨터 구조 &운영체제/컴퓨터구조 + 운영체제

운영체제

busy맨 2024. 2. 15. 13:25

1. 운영체제

1) 운영체제

  • 운영체제(operating system)
    • 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 프로그램
    • 커널(kernel)에 적재됨자원(resource)
      • 프로그램 실행에 필요한 요소
      • CPU, 메모리, 보조기억장치, 입출력장치 등과 같은 컴퓨터 부품들이 해당
  • 응용 프로그램(application software)
    • 사용자가 특정 목적을 위해 사용하는 일반적인 프로그램
    • 워드 프로세서, 인터넷 브라우저, 메모장, 게임 등이 해당

  • 운영체제의 역할
    • 지속적인 메모리 자원 관리 
      • 각 응용 프로그램들의 메모리 주소가 겹치지 않도록 적당한 공간에 프로그램을 적재
      • 실행할 프로그램을 메모리에 적재, 더 이상 실행되지 않는 프로그램을 메모리에서 삭제
    • CPU 자원 할당
      • 응용 프로그램이 실행되려면 CPU가 반드시 필요
        • 어떤 프로그램부터 CPU를 사용할지
        • 얼마나 오랫동안 CPU를 사용할지
      • 어떤 한 프로그램이 CPU를 독점하게 되면 다른 프로그램들은 올바르게 실행될 수 없음
        • 따라서 최대한 공정하게 CPU 자원을 할당

 

2) 커널

  • 커널(kernel)
    • 운영체제의 핵심 기능을 담당
    • 운영체제가 설치된 모든 기기에는 커널이 존재

 

3) 이중 모드와 시스템 호출

  • 응용 프로그램의 동작
    • 운영체제는 응용 프로그램이 하드웨어 자원에 직접 접근하는 것을 방지하여 자원을 보호
    • 응용 프로그램의 요청을 받은 운영체제는 자원에 접근하여 요청받은 작업을 수행
  • 이중 모드(dual mode)
    • CPU가 명령어를 실행하는 모드를 사용자 모드와 커널 모드로 구분하는 방식
  • 사용자 모드(user mode)
    • 운영체제 서비스를 제공받을 수 없는 실행 모드 => 자원에 접근할 수 없음
      • 사용자 모드로 실행 중인 CPU는 입출력 명령어와 같이 하드웨어 자원에 접근하는 명령 실행 X
    • 일반적인 응용 프로그램은 기본적으로 사용자 모드로 실행
  • 커널 모드(kernel mode)
    • 운영체제 서비스를 제공받을 수 있는 실행 모드 =>자원에 접근 가능
    • CPU가 커널 모드로 명령어를 실행하면 자원에 접근하는 명령어를 비롯하여 모든 명령 실행 가능
      • 커널 영역의 코드를 실행할 수 있음
  • 시스템 호출(system call)
    • 운영체제 서비스를 제공받기 위해 커널 모드로 전환하는 방법
      • 사용자 모드에서 커널 모드로의 전환
    • 소프트웨어 인터럽트로 동작
      • Ex) 하드 디스크에 데이터를 저장하려 할 때
        1. 사용자 모드에서 하드 디스크에 데이터를 저장하는 시스템 호출을 발생시켜 커널 모드로 전환
        2. 운영체제 내의 하드 디스크 저장 코드를 실행하여 하드 디스크에 접근
        3. 작업 완료 후 다시 사용자 모드로 복귀
      • 보통의 응용 프로그램들이 시스템 호출을 빈번하게 사용함

 

4) 운영체제의 핵심 서비스

  • 프로세스 관리
    • 프로세스(process): 실행 중인 프로그램
    • 운영체제는 다양한 프로세스를 효율적으로 관리하고 실행해야함
      • 한 프로세스를 실행하다가 다른 프로세스로 실행을 전환
    • 여러 프로세스가 동시에 실행되는 환경에서는 프로세스 동기화가 필요
    • 교착 상태 해결
  • 자원 접근 및 할당
    • CPU
      • CPU 스케줄링을 통해 프로세스들에게 CPU를 공정하게 할당
    • 메모리
      • 프로세스에게 어떤 메모리를 할당하는지, 메모리가 부족한 경우 극복
    • 입출력장치
      • 하드웨어 인터럽트 요청을 처리
      • 인터럽트 서비스 루틴 제공
  • 파일 시스템 관리
    • 보조기억장치 속 데이터를 파일과 디렉터리로 관리

'컴퓨터 구조 &운영체제 > 컴퓨터구조 + 운영체제' 카테고리의 다른 글

프로세스와 스레드  (1) 2024.02.20
입출력장치  (0) 2024.02.13
메모리와 캐시 메모리  (0) 2024.02.07
CPU 성능 향상 기법  (0) 2024.02.06
CPU의 작동 원리  (0) 2024.02.05