eung7.archive
close
프로필 사진

eung7.archive

github: @eung7

  • 분류 전체보기 (33)
    • CS (5)
      • 운영체제 (5)
      • 네트워크 (0)
    • iOS (23)
      • Swift (1)
      • iOS 기본 (6)
      • iOS 응용 (10)
      • XCode (6)
    • Flutter (3)
      • Dart (1)
      • Flutter 기본 (2)
      • Flutter 응용 (0)
    • 소프트웨어 공학 (2)
  • 홈
  • GitHub
인터럽트와 시스템 콜의 개념과 동작원리

인터럽트와 시스템 콜의 개념과 동작원리

유저 모드(User mode)개발자가 작성한 코드는 모두 유저 모드에서 실행프로그램 실행 중에 인터럽트(Interrupt)가 발생하거나 시스템 콜(System call)을 호출시에는 커널모드로 전환 커널 모드(Kernel mode)운영 체제의 핵심역할, 시스템 전반을 관리/감독하드웨어와 관련된 작업을 직접 수행프로그램의 현재 CPU 상태를 저장인터럽트나 시스템 콜을 커널 모드에서 직접 처리만약 처리가 완료되면, 중단됐던 프로그램의 CPU 상태를 복원함CPU 상태를 복원함과 동시에 통제권을 유저 모드로 반환하여 통제권을 프로그램에게 반환함다시 유저 모드에서는 프로그램이 중단되었던 부분부터 이어서 실행커널 모드가 존재하는 이유프로그램이 함부로 하드웨어를 점유하게 되면 시..

  • format_list_bulleted CS/운영체제
  • · 2024. 4. 24.
CPU 스케줄러, 디스패처의 개념과 동작원리

CPU 스케줄러, 디스패처의 개념과 동작원리

운영체제의 프로세스의 상태 New: 프로세스가 생성된 상태 Ready: CPU에 실행되기 위해 기다리는 상태 Running: CPU 스케줄러에 의해 실행되고 있는 상태 Running 상태에 있는 프로세스는 주어진 Time-Slice시간을 사용하면 다시 Ready상태로 되돌아감 Waiting: I/O 작업이나 이벤트를 기다릴 때 동안의 상태, 작업이 완료되면 다시 Ready상태로 되돌아감 Terminated: 프로세스가 더 이상 사용되지 않을 때의 상태 CPU 스케줄러(Scheduler) 위 다이어그램에서 Running 상태가 끝나고 다른 프로세스를 선택하는 역할 Ready Queue에서 다음에 실행될 프로세스를 선택 *Ready Queue: Ready상태에 있는 프로세스들을 모아놓은 Queue CPU ..

  • format_list_bulleted CS/운영체제
  • · 2024. 4. 23.
스레드 갯수를 정하는 방법(CPU bound, IO bound)

스레드 갯수를 정하는 방법(CPU bound, IO bound)

개념 Burst 어떤 현상이 짧은 시간 안에 집중적으로 일어남 CPU Burst: 프로세스가 CPU에서 한 번에 연속적으로 실행되는 시간 IO Burst: 프로세스가 IO작업을 요청하고 결과를 기다리는 시간 CPU bound 프로세스 CPU Burst가 다분한 프로세스 연산 작업이 많은 프로그램 (Ex.동영상 편집 프로그램, 머신러닝 프로그램) IO bound 프로세스 IO Burst가 다분한 프로세스 네트워크가 자주 사용되는 작업 (Ex.백엔드 API 서버) CPU bound 프로그램에서 적절한 스레드의 개수 일반적으로 코어의 개수 + 1을 넘어가면 안 됨 예를 들어, 듀얼 코어 CPU에 CPU bound 프로그램을 동작할 때 스레드 몇 개를 할당하는 것이 가장 좋을까? 만약 4개의 스레드가 2개씩 하..

  • format_list_bulleted CS/운영체제
  • · 2024. 4. 22.
컨텍스트 스위칭(Context Switching)

컨텍스트 스위칭(Context Switching)

Context Switching(컨텍스트 스위칭) CPU/코어에서 실행 중이던 프로세스/스레드가 다른 프로세스/스레드로 교체 되는 것 여러 프로세스/스레드를 동시에 실행시키기 위해서 필요 컨텍스트(Context): 프로세스/스레드의 상태(CPU, 메모리 등) 스위칭이 발생할 떄 주어진 time slice(quantum)를 다 사용할 떄 IO작업을 해야할 떄 다른 리소스를 기다릴 떄 OS 커널(Kernel) Context Switching을 실행하는 곳 각종 리소스를 관리 및 감독하는 역할 Context Switching의 종류 다른 프로세스끼리 스위칭하는 Process Context Switching 같은 프로세스의 스레드들끼리 스위칭 Thread Context Switching 공통점 커널 모드에서 실..

  • format_list_bulleted CS/운영체제
  • · 2024. 4. 19.
프로세스와 스레드 (멀티 스레딩, 멀티 프로세싱)

프로세스와 스레드 (멀티 스레딩, 멀티 프로세싱)

사전 지식 프로그램 컴퓨터가 실행할 수 있는 명령어들의 집합 프로세스 컴퓨터에서 실행 중인 프로그램을 의미 각각의 프로세스는 독립된 메모리 공간을 할당 받는다. 명령어들과 데이터를 가짐 CPU(Central Processing Unit) 명령어를 실행하는 연산 장치 메인 메모리 프로세스가 CPU에서 실행되기 위해 대기하는 공간 I/O(Input/Output) 파일을 읽고 쓰는 행동 네트워크와 데이터를 주고 받는 것 입출력 장치와 데이터를 주고 받는 것 프로세스 단일 프로세스 시스템 컴퓨터의 역사에서 초창기에는 단일 프로세스 시스템 한 번에 하나의 프로그램만 실행 단점: 실행 중에 있는 프로세스가 I/O작업 동안에는 CPU는 아무것도 하지 않음 → CPU 사용률이 좋지 않음 멀티 프로그래밍 시스템 CPU ..

  • format_list_bulleted CS/운영체제
  • · 2024. 4. 19.
  • navigate_before
  • 1
  • navigate_next
전체 카테고리
  • 분류 전체보기 (33)
    • CS (5)
      • 운영체제 (5)
      • 네트워크 (0)
    • iOS (23)
      • Swift (1)
      • iOS 기본 (6)
      • iOS 응용 (10)
      • XCode (6)
    • Flutter (3)
      • Dart (1)
      • Flutter 기본 (2)
      • Flutter 응용 (0)
    • 소프트웨어 공학 (2)
Copyright © Eung7 모든 권리 보유.

티스토리툴바