[1]운영체제의 정의와 컴퓨터 시스템의 구조

김두미·2021년 12월 25일
0

OS

목록 보기
1/9
post-thumbnail

<KOCW에서 강의를 듣고 정리한 내용>

1. OS란?

사용자 및 다른 모든 SW와 HW를 연결하는 SW계층을 의미
(HW 바로 윗단에 설치되는 SW)

좁은 의미로는 커널을 말하며 메모리에 상주하는 운영체제의 부분이다.

넓은 의미로는 커널뿐 아니라 시스템을 위한 유틸리티를 광범위하게 포함하는 개념이다.


1-1 OS의 기능

  • 컴퓨터 시스템 내의 자원을 효율적으로 관리
  • 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 제공

1-2 OS의 분류

  • 동시 작업 가능 여부
  1. 단일 작업 :
    • MS-DOS
    • 한 번에 하나의 작업만을 수행
  2. 다중 작업 - UNIX, MS windows
  • 작업 처리 방식에 따른 분류
  1. 일괄처리 - 한꺼번에 일정량을 처리
  2. 시분할 방식 (time sharing)
    • 현대의 컴퓨터 , 짧은 응답 시간 [범용 운영체제]
    • CPU의 작업시간을 여러 프로그램들이 조금씩 나누어 쓰는 시스템
  3. 실시간 운영체제(Realtime) - 정해진 시간 안에 반드시 어떠한 일이 처리됨을 보장

실시간 운영체제는 경성 실시간 시스템연성 실시간 시스템으로 나뉜다.
둘 다 Deadline이 있지만 경성 실시간 시스템은 원자로 제어 시스템등 지키지 못할 경우 매우 위험한 결과를 초래할 수 있는 시스템을 의미한다.

우리의 운영체제는 다중 작업, 다중 사용자, 시분할 방식!-!

Multiprogramming : 컴퓨터에서 여러 작업을 동시에 수행하는 것을 뜻하며 여러 프로그램이 메모리에 올라가 있음을 강조하는 단어이다.


1-3 OS의 예시

유닉스

대형 컴퓨터를 위한

  1. 벨 연구소에서 개발 , 무료 배포
  2. 유닉스의 개빌을 위해 만든 언어 -> c언어
  3. 높은 이식성
  4. 놀라울 정도로 작은 커널의 크기
  5. 소스코드의 공개

리눅스의 등장 -! (두둥) (리눅스는 유닉스에서 개발된 종류 중 하나)

개인용 컴퓨터에서도 널리 사용


DOS (Disk Operating System)

1.MS 사에서 만든 단일 사용자용 OS
2. "메모리는 640KB보다 안커질것-!" 이라고 하였던 과거...
3. 메모리 관리 능력의 한계

MS Windows

  1. MS의 다중 작업용 GUI 기반 OS

1-4 OS의 기능_자세히

  1. CPU 스케쥴링
  2. 메모리 관리 - 한정된 메모리 어떻게 잘..?
  3. 파일 관리 - 디스크에 파일을 어떻게 보관
  4. 입출력 관리 - 입출력 장치는 속도가 느린데 어떻게 잘 정보를 주고 받을지 (Interrupt이용)
  5. 프로세스 관리 - 생성과 삭제, 자원 할당 및 반환
  6. 그외 - 보호 시스템, 네트워킹, 명령어 해석기



Chapter 2 . System Structure & Program Execution

2-1 컴퓨터 시스템의 구조

컴퓨터의 내부장치에는 CPU, 메모리가 있다.
컴퓨터의 외부장치(I/O device)에는 디스크, 키보드, 마우스 모니터 등이 있다.

매 클럭 사이클마다 cpu는 메모리에서 instruction을 읽어서 실행
하나의 명령 하나를 수행할 때마다 Interrupt line을 확인하여 들어온 interrupt가 있는지 확인한다. 만약 있다면 cpu제어권이 OS로 넘어간다.

메모리 : cpu의 작업 공간
컨트롤러 : 일종의 작은 cpu로 각 장치(I/O device)를 통제
로컬 버퍼 : 각 I/O 장치의 작업공간
mode bit : cpu를 사용자 프로그램이 갖고있는지, OS가 갖고있는지 알려준다.
- 1이면 사용자 프로그램이 실행 중 <제한된 instruction만 가능 >
- 0이면 OS가 CPU에서 실행 중 (커널 모드) <모든 instruction 가능 >
Timer Interrupt : 특정 프로그램이 CPU를 독점하는 것을 막기 위함

CPU는 메모리와 로컬버퍼에 모두 접근할 수 있기에 둘 사이에서 데이터를 옮기는 일을 하게 된다. 이렇다보니 CPU가 인터럽트를 많이 당해 업무가 방해되고 -> 효율적이지 않게 동작하게 된다.
이를 해결하기 위해 DMA(Direct Memory Access)를 둔다.

DMA가 로컬버퍼의 내용을 메모리로 읽어오는 작업을 DMA가 대행한다. 그 작업이 끝나고 CPU에게 interrupt을 만들어 작업의 완료를 알려준다.



1) 시스템 콜 (system call) :

사용자 프로그램이 OS의 서비스를 받기 위해 커널 함수를 호출하는 것

  • cpu 제어권이 OS로!!

모든 I/O 명령은 특권명령으로 OS를 통해서만 I/O device에 접근이 가능하다.
I/O device 접근 요청을 위해 사용자 프로그램은 SW인터럽트를 발생시켜 커널의 함수에 접근한다. 이때 호출하는 것이 시스템 콜 (system call)이다.

OS는 올바른 I/O 요청인지 확인한 후 I/O를 수행한다.
시킨 일을 다하면 이제 HW 인터럽트가 걸린다.(I/O 컨트롤러가 건다)

즉, I/O를 하기위해서는 HW, SW 인터럽트 둘 다 필요하다.



인터럽트 처리 루틴

각 인터럽트마다 실제 처리하는 코드 (해당 인터럽트를 처리하는 커널 함수)

인터럽트 벡터

해당 인터럽트의 처리 루틴 주소를 가지고 있는 것
(인터럽트 종류마다 번호를 정해서, 번호에 따라
처리해야 할 코드가 위치한 부분을 가리키고 있는 자료구조)


++
CPU의 운명 : PC(program counter)라는 레지스터(CPU 내부에 위치)가 가리키는 메모리 주소에서 Instruction 하나 읽어서 실행하는 일만 한다.
; 아주 빠른 일꾼


Interrupt (넓은 의미)

  1. Interrupt (HW Interrupt) : 하드웨어가 발생시킨 인터럽트
  2. Trap (SW Interrupt) : 프로그램이 Interrupt라인을 Setting
    1) Exception : 프로그램이 오류를 범함
    2) System Call : 프로그램이 커널 함수를 호출




3)저장장치 계층 구조

< 휘발성 > : 레지스터, 캐시메모리, 메인 메모리

< 비휘발성 > : Magnetic Disk, Optical Disk, Magnetic Tape




2-2 프로세스

프로세스란?

실행중인 프로그램!

프로세스 문맥을 3가지로 분류할 수 있다.
1. 하드웨어 문맥, 2. 프로세스의 주소공간 3. 커널상의 문맥


### 1) 프로세스의 상태
  1. Running
    • CPU를 잡고 instruction을 수행중인 상태
  2. Ready
    • CPU를 기다리고 있는 상태
  3. Blocked
    • CPU를 주어도 당장 instruction을 수행할 수 없는 상태

2) Process Control Block (PCB)

  • 운영체제가 각 프로세스를 관리하기 위해 프로세스당 유지하는 정보
  • 커널의 Data영역에 위치

3) 문맥교환

하나의 사용자 프로세스로부터 다른 사용자 프로세스로 CPU의 제어권이 이양되는 과정을 의미

  • System call 이나 인터럽트가 발생시 반드시 문맥교환이 일어나는 것은 아니다.
  • 모드 변경에 비해 문맥교환에는 훨씬 많은 오버헤드가 뒤따른다.




2-3 스케쥴러

1. 장기 스케줄러 (Job scheduler)

  • 시작 프로세스 중에서 어떤 것들을 ready queue로 보낼지 결정
  • 프로세스에 메모리를 주는 문제
  • degree of Multiprogramming을 제어
  • time sharing system에는 보통 장기 스케줄러가 없다.(무조건 ready로 간다.)

2. 단기 스케줄러 ( CPU Scheduler)

  • 어떤 프로세스를 다음번에 running 시킬지 결정
  • 프로세스에 CPU를 주는 문제

3. 중기 스케줄러 ( Swapper)

  • 여유 공간 마련을 위해 메모리를 통째로 빼앗기고 디스크로 스왑 아웃된다.
  • 프로세스에게서 memory를 뺏는 문제
  • degree of Multiprogramming을 제어

중기 스케줄러로 인해 메모리를 빼앗기고 디스크로 스왑아숫된 프로세스는 중지(suspended,stopped)된 상태가 된다.



profile
개발자를 꿈꾸는 대학생

0개의 댓글