[운영체제] Multi-programming과 Timesharing

2024. 4. 23. 02:33·Computer Science/운영체제

초기의 운영체제는 ..

 

직렬 처리 (인간 작업)

  • 운영 체제 없음
  • 기계는 디스플레이 라이트, 토글 스위치, 입력 장치 및 프린터가 있는 콘솔에서 실행됨
  • 작업 스케줄링 없음
  • 설정 시간에 컴파일러 로드, 소스 프로그램, 컴파일된 프로그램 저장 및 로드 및 링크 포함
과 같은 단계로 실행되었다.

 

Simple Batch Systems(간단한 배치 시스템)는 직렬 처리 시스템에서 발전한 것이다. 작업은 컴퓨터 운영자에게 제출되고, 운영자는 이를 묶어서 입력 장치에 배치한다. 이러한 시스템은 모니터에 의해 제어된다.

 

Batch는 간단히 말해서 '처리해야 할 대상(== 일)들의 묶음'이라고 할 수 있다.

Batch Size라고 하면 처리할 대상의 크기인 것이다.

 

그러므로 Simple Batch Systems는 간단한 일처리 시스템인 셈 . . ! !

  • 모니터: 이벤트의 순서를 제어하는 소프트웨어로, 작업을 읽어들이고 제어를 제공한다. 작업이 완료되면 모니터로 다시 돌아간다. 이것은 운영 체제의 초기 버전 중 하나이다.
Simple Batch Systems

 

 

 

# 1 Uni-programming

 

유니프로그래밍(Uni-programming)은 단일 프로세서가 I/O 명령이 완료될 때까지 기다려야 한다는 특징을 갖는다. 이는 I/O 작업이 느리기 때문에 성능이 저하될 수 있다는 것을 의미한다. 따라서 유니프로그래밍은 효율적인 작업을 위해 최적화된 방식이 아니다.

유니 프로그래밍에서의 CPU 효율성 계산

 

 

 

# 2 Multi-programming

 

다중프로그래밍 시스템은 한 작업이 I/O를 기다려야 할 때 프로세서가 다른 작업으로 전환될 수 있다. 이는 더 큰 메모리 공간이 필요하다는 것을 의미하고 CPU 효율성이 높아진다는 것을 의미한다.

 

프로그램이 다음에 실행될 것인지를 결정하는 것을 프로세스 스케줄링이라고도 하며, 이는 커널 함수인 스케줄러에 의해 수행된다. 이는 CPU가 다음에 실행할 프로그램을 결정하는 것과 관련이 있다.

 

여기서 커널 함수란 OS 내에 탑재된 어떤 기능을 수행하는 일련의 함수이다.

커널은 운영 체제의 주요 부분 중 하나로 주 메모리에 상주한다. 커널은 운영 체제의 핵심으로서 시스템 자원 및 프로세스를 관리하고, 하드웨어와 소프트웨어 간의 상호 작용을 조정한다. 이를 통해 사용자 및 응용 프로그램이 시스템 자원에 접근하고 활용할 수 있게 된다.

 

위의 예시를 살펴 보면 한 프로그램이 실행되는 동안 다른 프로그램은 기다리고 중간중간 스케줄러에 의해 다른 프로그램으로 CPU가 할당되는 것을 알 수 있다.

 

 

## 2-1 Process Scheduling

 

프로세스 스케줄링은 다음에 실행될 프로그램을 결정하는 작업을 말한다. 즉, 어떤 프로그램이 다음에 CPU를 점유할 것인지를 결정하는 것이다.

 

이를 CPU 스케줄링 또는 작업 스케줄링이라고도 한다. 프로세스 스케줄링은 커널의 스케줄러 함수에 의해 수행되고 이 과정에서 커널은 실행할 다음 프로세스를 선택하고, 이를 CPU에 할당하여 작업을 수행하도록 한다. 이를 통해 시스템은 여러 프로세스 간에 CPU 자원을 효율적으로 공유하고 작업을 조율할 수 있다.

 

 

 

# 3 Timesharing

 

타임 쉐어링 시스템은 다중 프로그래밍을 사용하여 여러 interactive program을 처리하는 시스템이다.

 

프로세서의 시간이 여러 프로세스들 사이에서 공유되는데 각 프로그램에게는 시간 단위로 불리는 "타임 슬라이스"가 할당된다.

 

타임 슬라이스의 길이는 일반적으로 100 밀리초(0.1초)로 설정된다.

 

이러한 방식으로 여러 사용자가 터미널을 통해 시스템에 동시에 접속할 수 있다. 각 사용자는 자신만의 CPU를 가지고 있는 것처럼 생각한다. 이렇게 함으로써 시스템은 평균 응답 시간을 줄일 수 있다. 타임 쉐어링 시스템은 다양한 사용자들이 동시에 시스템을 공유하며 작업할 수 있도록 한다.

 

타임 쉐어링의 요지는 바로 "타임 슬라이스"에 있다.

 

타임 슬라이스를 통해 각 프로세스가 다른 프로세스가 전부 완료될 때까지 기다릴 필요가 없고 각 프로세스에게 할당된 시간 동안 프로세스를 처리하게 된다.

 

그 대기시간은 0.1초로 실제 체감하기 매우 빠른 속도이므로 다른 프로세스가 실행되는 동안을 느끼기 힘들다.

 

 

 

# 4 Multiprogramming vs. Timesharing

 

다중 프로그래밍과 타임 쉐어링은 모두 현대 컴퓨터에서 사용되는 기술이다.

  • 다중 프로그래밍
    • 배치 처리, 백그라운드 처리에 사용된다.
    • 타임 쉐어링보다 오버헤드가 적다.
    • 처리량이 더 많고 프로세서의 사용이 더 효율적이다. (처리량: 단위 시간 동안 완료된 작업의 수)
  • 타임 쉐어링
    • 대화형 처리, 포그라운드(전경) 처리에 사용된다.
    • 다중 프로그래밍보다 오버헤드가 더 많다.
    • 더 나은(짧은) 응답 시간을 제공한다. (응답 시간: 사용자가 명령을 내리고 명령이 실행되기 시작할 때까지 걸리는 시간)

 

 

 

# 5 Symmetric multiprocessing (SMP)

 

Symmetric multiprocessing(대칭 다중 처리)은 여러 개의 프로세서가 있는 시스템이다.

 

이러한 프로세서들은 같은 주 메모리와 I/O 시스템을 공유하며 모든 프로세서가 동일한 기능을 수행한다. 즉, SMP 시스템에서는 각 프로세서가 동등하게 역할을 수행하며 작업을 분배하여 병렬로 처리할 수 있다. 이러한 구조는 처리 능력을 향상시키고 시스템의 성능을 향상시키는 데 도움이 된다.

'Computer Science > 운영체제' 카테고리의 다른 글

[운영체제] 프로세스에 대하여 ..  (0) 2024.04.24
[운영체제] Operating System Architecture  (0) 2024.04.23
[운영체제] 분산 시스템과 Command-Interpreter System  (0) 2024.04.23
[운영체제] 운영체제란 무엇인가 ?  (0) 2024.04.22
[운영체제] 프로세스 실행  (1) 2024.04.01
'Computer Science/운영체제' 카테고리의 다른 글
  • [운영체제] Operating System Architecture
  • [운영체제] 분산 시스템과 Command-Interpreter System
  • [운영체제] 운영체제란 무엇인가 ?
  • [운영체제] 프로세스 실행
하가네
하가네
  • 하가네
    하 렌
    하가네
  • 전체
    오늘
    어제
    • 분류 전체보기 (93)
      • Computer Science (23)
        • 운영체제 (7)
        • 데이터통신 (6)
        • 자료구조 (4)
        • 논리회로 (0)
        • 확률 및 통계 (0)
        • 데이터베이스 (2)
        • AI소프트웨어 (3)
        • 컴퓨터네트워크 (1)
      • Language (0)
        • Java (0)
      • Framework (8)
        • Spring (8)
      • Tips (2)
        • 터미널 명령어 (1)
        • 우분투 명령어 에러 (1)
      • SSA (6)
        • Front (1)
        • Back (4)
        • DB (0)
        • 기획 (1)
      • 우아한테크코스 (0)
        • 7기 프리코스 (0)
      • CNU SW 아카데미 (42)
        • 1주차 (5)
        • 2주차 (5)
        • 3주차 (2)
        • 4주차 (1)
        • 5주차 (3)
        • 6주차 (2)
        • 7주차 (0)
        • 8주차 (1)
        • 9주차 (14)
        • 10주차 (0)
        • 11주차 (1)
        • 12주차 (0)
        • 13주차 (2)
        • 14주차 (2)
        • 15주차(최종 프로젝트) (3)
        • 최종 프로젝트 이후 (1)
      • 모각코 (6)
        • 2023 동계 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.
하가네
[운영체제] Multi-programming과 Timesharing
상단으로

티스토리툴바