컴퓨터는 H/W, Kernel, User 로 크게 3가지로 구분지어 볼 수 있습니다.

운영체제는 소프트웨어로서 App이 잘 동작하도록 Support하며 H/W를 제어및 관리를 합니다.

  • 인터럽트 (Interrept) : 쉽게 말해, 집에서 일을 하고 있는데 초인종을 눌러 일을 중단하게 됨.
    • 내부 인터럽트와 외부 인터럽트로 나눌 수 있음.
  • 즉, CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치에 예외상황이 발생하여 처리가 필요한 경우 CPU에 알려 처리할 수 있도록 하는 것.
  • 인터럽트 동작 순서
  • 1. 인터럽트 요청 2. 프로그램 실행 중단 : 현재 실행중이던 Micro option까지 수행함 3. 현재의 프로그램 상태 보존 : PCB, PC 등 4. 인터럽트 처리 루틴 실행 : 인터럽트를 요청한 장치를 식별함 5. 인터럽트 서비스 루틴 실행 : 인터럽트 원인을 파악하고 실질적인 작업을 수행함. 처리기 레지스터 상태 보존, 서비스 루틴 수행 중 우선순위 높은 것, 인터럽트 발생 재귀적으로 1~5과정 수행 6. 상태 복구 : 인터럽트 발생 시 저장해둔 PC를 다시 복구함 7. 중단된 프로그램 실행 재개 : PC의 값을 이용하여 이전에 수행 중이던 프로그램을 재개함.
  • DMA(Direct Memory Access)Hello.. 라는 Data 가 prinft()라는 함수 내에서 Write()를 함. 이때의 정보가 RAM으로 Hello가 전달됨여러 단계를 거치는 과정이 복잡하다보니 성능이 떨어짐(비효율적임).DMA Controller를 이용하면 하드디스크와 메모리를 직접 연결하여 CPU는 제어신호만 주고받을 뿐 데이터 전송에서 제외시킬 수 있다. 따라서 입출력 시 CPU는 제어를 위해 데이터 전송 시작과 완료에만 할당되어 CPU 자원의 낭비를 줄 일 수 있게됨.
  • 위의 방식의 단점을 개선한 것이 DMA방식입니다. 이름 그래도 입출력장치가 메모리에 직접 접근한다는 뜻임.
  • 이때 인터럽트가 발생됨. 이것을 주변기기로 옮기면서 또 인터럽트가 발생할수 있음. hello를 띄우는데
  • 예를 들어, “Hello World!”라는 Data를 화면에 띄우려고 한다.

'CS(Computer science) > 운영체제' 카테고리의 다른 글

CPU 스케줄링 (1)  (0) 2024.03.05
  • 스케줄링(Scheduling)의 단계
    • 고수준 스케줄링
    • 가게가 장사가 잘된다고 손님을 계속 받는 것이 아닌 것처럼 시스템 내의 전체 작업 수를 조절하는 것을 말함. 여기서 작업이란 운영체제에서 다루는 일의 가장 큰 단위로 1개 또는 여러개의 프로세스로 이뤄짐.
    • 중간 수준 스케줄링⇒ 즉, 고수준 스케줄링은 스케줄링 대상에 참여하는 job을 조절하는 것이라면 중간 수준 스케줄링은 이미 들어온 프로세스들에 대하여 전체적으로 조절하는 것임.
      1. 고수준과 저수준 스케줄링 사이에서 일어나는 일.
      2. suspend와 active 로 전체 시스템의 활성화된 프로세스 수를 조절하여 과부하를 막음.
      3. 이는 프로세스의 상태 중 보류 상태(suspend state)에 해당하며 저수준 스케줄링이 원만하게 이루어지도록 완충하는 역할을 함.
    • 저수준 스케줄링준비 상태인 프로세스를 실행 상태로, 실행 상태를 대기 상태로, 대기 상태를 준비 상태로 보내는 것들이 있음.
    • 어떤 프로세스에 CUP를 할당할지, 어떤 프로세스를 대기 상태로 보낼지 등을 결정하는 일임.

정리

고수준 스케줄링에서 전체 시스템의 부하를 고려하여 작업을 시작할지 말지 결정함. 이 결정에 따라 전체 프로세스의 수가 결정되는 것임.

중간 수준 스케줄링은 시스템이 과부하가 걸려서 전체 프로세스 수를 조절해야할 때, 이미 활성화된 프로세스 중 일부를 보류 상태로 보낸다. 보류 사애가 된 프로세스는 처리 능력에 여유가 생기면 다시 활성화가 됨.

저수준 스케줄링에서 실제로 작업이 이루어집니다. CUP 스케줄러는 필요에 따라 준비 상태에 있는 프로세스를 실행 상태로 옮기고, 대기 상태로 보내기도 하며, 타임 아웃으로 준비 상태로 보내기도 한다. 보통 특별한 명시가 없다면 CPU 스케줄러는 저수준 CPU 스케줄러를 말함.

'CS(Computer science) > 운영체제' 카테고리의 다른 글

[운영체제] 인터럽트와 DMA  (0) 2024.03.05

+ Recent posts