일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 웹 서버
- 명품 운영체제 5장 복합문제
- 게시판
- 게시판 만들기
- 연습문제 답안
- php
- 로그인
- 연습문제
- 생능출판
- 배치 운영체제
- sql 인젝션 공격 방법
- 복합문제
- 운영체제
- 로그인 구현
- HTML
- DB
- php 게시판 만들기
- php 로그인
- 회원가입 구현
- sql 인젝션 방어
- colima
- 5장 연습문제
- 명품 운영체제 9장
- 명품 운영체제
- 연습문제 답
- 명품 운영체제 8장
- MySQL
- php 회원가입
- 명품 운영체제 7장
- Mac
- Today
- Total
눈사람의 해킹공부
운영체제의 발전(1/2) 본문
배치 운영체제
- 출현 배경 : 컴퓨터의 노는시간을 줄여 컴퓨터의 활용률 향상하기 위해 출현했습니다.
- 배치 운영체제 컴퓨터 시스템 : 개발자와 관리자를 구분하고 개발자는 펀치 카드를 입력 데크에 두고 결과를 기다립니다. 배치 운영체제는 자동으로 테이프 장치에 대지궁인 프로그램을 한 번에 하나씩 적재하고 실행합니다.
다중프로그래밍(Multiprogramming) 운영체제
- 출현 배경 : 1960년대 중반 CPU 같은 하드웨어 속도가 개션되면서 점점 컴퓨터의 가격이 증가하게 됩니다. 또한 프로그램의 실행 형태로 인한 CPU의 유휴 시간이 늘어나게 됩니다. 이로 인해 CPU의 유휴시간을 줄일 필요성을 느낍니다.
- 다중프로그래밍 기법 출현 : 미리 여러 프로그램을 메모리에 적재합니다. 이때 프로그램의 양은 메모리가 수용 가능한 수준입니다. 프로그램 실행 도중 I/O가 발생하면, CPU에게 메모리에 적재된 다른 프로그램을 실행시킵니다.
- 다중프로그래밍의 정의 : 다중프로그래밍은 여러 프로그램을 메모리에 올려놓고, CPU가 한 프로그램을 실행하다 I/O가 발생하면, 입출력이 완료될 때까지 CPU가 메모리에 적재된 다른 프로그램을 실행하는 식으로 CPU의 노는 시간을 줄이는 기법입니다.
- 다중프로그래밍 도입으로 생긴 이슈 : 다중프로그램이이 도입되면서 여러 프로그램을 동시에 메모리에 올려놓기 위해서는 메모리의 크기를 늘릴 필요성이 대두되고, '프로그램의 메모리 할당과 관리를 어떻게 해야 하는가?'에 대한 이슈도 생겼습니다. 또 프로그램이 다른 프로그램의 영역을 침범하지 못하게 막는 방법도 필요하게 되었습니다. 이 시점에서 CPU 스케줄링과 컨텍스트 스위칭의 개념, 인터럽트 개념도 도입됩니다. 이들은 밑에서 따로 설명하도록 하겠습니다.
또한 여러 프로그램이 동일한 자원을 동시에 엑세스할 때 발생하는 문제와 프로세스들이 상대가 가진 자원을 서로 요청하면서 무한대기하는 교착상태도 해결해야하는 문제점이 생겼습니다.
CPU 스케줄링
CPU 스케줄링(CPU scheduling)은 컴퓨터의 운영체제에서 프로세스나 스레드에 CPU 시간을 어떻게 할당할지 결정하는 작업을 말합니다. 이 작업은 여러 프로세스나 스레드가 동시에 실행되는 다중 프로그래밍 환경에서 특히 중요합니다. CPU 스케줄링의 주요 목적은 자원을 공정하게 사용하면서도 시스템의 전반적인 성능과 처리량을 최적화하는 것입니다.
컨텍스트 스위칭
컨텍스트 스위칭(context switching)은 운영체제가 하나의 프로세스에서 다른 프로세스로 CPU의 실행 권한을 전환하는 과정을 말합니다. 이 작업은 주로 멀티태스킹 운영체제에서 발생하며, 여러 프로세스나 스레드가 동시에 실행될 수 있게 해줍니다.
컨텍스트 스위칭 과정은 다음과 같습니다:
- 현재 실행 중인 프로세스의 상태 (컨텍스트)를 저장합니다. 이 컨텍스트는 프로세스의 프로그램 카운터, 레지스터 값, CPU 스택 등의 정보를 포함합니다.
- 다음으로 실행될 프로세스의 컨텍스트를 메모리에서 가져옵니다.
- 해당 컨텍스트를 CPU에 로드하고, 프로세스의 실행을 계속합니다.
인터럽트
인터럽트(interrupt)는 프로그램 실행 중에 발생하는 예외적인 사건으로, 현재 실행 중인 프로세스나 스레드의 진행을 일시적으로 중단하고 특정 루틴(인터럽트 서비스 루틴, ISR)을 실행시키는 메커니즘입니다. 인터럽트는 CPU가 빠르게 다양한 이벤트에 대응할 수 있게 해줍니다.
인터럽트 처리 과정은 다음과 같습니다:
- 현재 실행 중인 프로세스의 컨텍스트를 저장합니다.
- 인터럽트의 원인을 결정하기 위해 인터럽트 벡터 테이블을 참조합니다.
- 해당 인터럽트에 대한 인터럽트 서비스 루틴(ISR)을 실행합니다.
- ISR 실행이 완료되면 원래의 프로세스로 컨텍스트를 복원하고 실행을 계속합니다.
다음 포스트에서 시분할 다중프로그래밍부터 설명하도록하겠습니다.
'운영체제' 카테고리의 다른 글
명품 운영체제 연습문제 8장 (2) | 2023.12.04 |
---|---|
명품 운영체제 연습문제 7장 (0) | 2023.12.03 |
명품 운영체제 연습문제 6장 (4) | 2023.12.01 |
명품 운영체제 연습문제 5장 (4) | 2023.11.30 |
운영체제 개념 (0) | 2023.10.31 |