'운영체제 개요'에 해당되는 글 1건

01 운영체제 개요

 

1) 운영체제 시작

 

컴퓨터가 부팅되면 ROM에 저장된 바이오스라는 프로그램이 실행되고 바이오스는 하드웨어 장치의 상태를 검사한 후 보조기억장치의 부트섹터에 저장된 부팅 프로그램을 주기억 장치로 이동시킨다.

 

부팅 프로그램은 보조기억장치의 운영체제를 주기억장치로 이동시키고 운영체제의 첫 번째 명령어가 실행되도록 분기한다.

 

2) 운영체제 기능

 

컴퓨터 시스템의 자원관리  - 1.프로세스 관리(스케쥴링 등) 2. 주기억 장치 관리 3. 파일관리

 

 

02 프로세스 관리

 

프로세스는 주기억장치에 있으며 하드웨어르 동작시키는 능동적인 존재.

 

1) 프로세스 제어블록

 

프로세스는 PCB라는 프로세스 제어블록을 가진다.

 

임의의 프로세스가 생성되면 이 프로세스의 정보를 저장하는 새로운 프로세스 제어 블록이 생성되고 이 프로세스가 종료될때 같이 사라진다.

 

2) 프로세스의 상태

 

프로세스 상태에 대한 이미지 검색결과

 

 

2) 문맥전환(context swithing)

 

- 프로세스가 종료된경우

-> 다른 프로세스의 제어블록이 준비큐의 가장 앞에 위치하게 된다. B의 PCB의 일부 정보가 cpu의 레지스터에 저장된다.

 

- 프로세스가 cpu를 오래 차지하고 있는 경우

-> 프로세스A를 멈춰 준비상태가 되게 하고 프로세스B의 제어블록을 준비큐의 가장 앞에 위치시킨다. 중앙처리장치의 일부 레지스터에 저장되어 있는 프로세스A의 정보를 프로세스A 제어 블록으로 저장하고 , 프로세스 B의 프로세스 제어 블록의 일부 정보를 중앙처리장치의 레지스터에 저장한다.

 

-   프로세스A에 디스크 입출력 명령이나 sleep 명령이 발생한 경우

-> 준비 큐에서 제거하여 대기큐로 보내고 준비 상태에 있는 한 프로세스를 실행하게 한다.

 

3) 프로세스 스케쥴링

 

- FCFS

 

먼저 도착한 프로세스를 먼저 서비스하는 방법이다.

 

- SRT(선점형 SJF)

 

현재 실행중인 프로세스의 남은 시간과 준비상태 큐에 도착한 프로세스의 실행시간을 고려하여 가장 짧은 실행시간을 요구하는 프로세스에게 cpu를 할당 

 

- SJF(비선점형 SJF) Shortest Job First

 

현재 실행중인 프로세스의 남은 시간(버스트 시간) 중 가장 짧은 프로세스에게 cpu 할당하고 준비큐에 새로운 프로세스가 도착하여도 현재 진행중인 작업을 끝낸다.(비선점)

 

- RR

 

시간 할당량 동안 중앙처리장치를 할당받아 실행된다.

 

- Priority

 

우선 순위가 가장 높은 프로세스에게 cpu를 할당한다.

 

기아현상이 문제가 될수 있으므로 에이징기법을 사용해 해결한다.

 

에이징 - 일정 시간 동안 실행되지 않으면 우선순위를 한 단계씩 높이는 방법이다.

 

 

 

03 주기억장치 관리

 

주기억장치는 1. 현재 실행중인 프로그램과 2. 이 프로그램이 필요로 하는 데이터를 일시적으로 저장하는 장치이다.

 

 

1) 단순한 구조의 주기억장치 관리

 

단일 연속 주기억장치 관리

 

주기억장치에 운영체제 외에 한개의 사용자 프로그램만 저장하는 관리 기법.

 

분할 주기억장치 관리

 

대부분의 시스템은 단일 프로그래밍이 아니라 다중 프로그래밍 방식으로 동작하여 여러개의 프로세스를 주기억장치에 저장해서 동작시킨다.

 

운영체제 이외에 영역을 분할하여 프로세스를 저장한다.

 

이때 새롭게 생성된 프로세스를 주기억장치에 할당하려면 세가지 방식을 사용한다.

 

할당방식 - 최초 적합, 최적 적합, 최악 적합

 

2) 가상메모리

 

실행될 프로그램이 주기억장치 보다 크거나 여러 개인 경우에는 주기억장치 공간의 부족으로 인해 프로그램이 제대로 실행되지 못할 수 있다.

 

-> 당장 실행에 필요한 부분만 주기억 장치에 저장하고 나머지는 보조기억장치에 두고 동작하도록 하여 문제해결.

 

프로그램을 일정한 크기의 페이지로 나누고 페이지단위로 주기억장치에 올리며 동작하는 페이징을 구현한다.

 

3) 페이징

 

가상 메모리(보조기억장치, 하드또는 ssd) 공간을 일정한 크기의 페이지로 나누어 관리하는 방법으로 주기억장치의 페이지에 해당하는 부분을 페이지 프레임이라고 한다.

 

각 페이지가 주기억장치의 어느 프레임에 저장되는지를 나타내는 테이블을 운영체제가 관리하는데, 이를 페이지 테이블이라고 한다.

 

 

4) 페이지 교체 알고리즘

 

새로운 페이지를 주기억장치에 저장할 때 비어있는 프레임이 없으면 새로운 페이지를 저장하기 위해 주기억장치에서 제거할 페이지를 결정해야 한다. 이렇게 제거할 페이지를 결정하는 동작을 페이지 교체라고 한다.

 

- FIFO

 

가장 먼저들어온 페이지를 제거

 

- LRU(Least Recently Used)

 

가장 오랫동안 사용되지 않았던 페이지를 선택해서 제거하는 기법

 

- LFU(Least Frequently Used)

 

가장 사용 빈도가 낮은 페이지를 선택해서 제거하는 방법.

 

 

04 파일관리

 

 

1) 윈도우의 파일시스템

 

FAT, NTFS

 

- FAT

 

시스템영역과 데이터영역으로 구분하고 시스템영역은 부트레코드, FAT, 루트디렉토리로 구성된다.

 

시스템영역 설명

 

* 부트레코드는 컴퓨터를 처음 켰을때 동작하는 프로그램을 저장하고 있는 영역 운영체제를 주기억장치로 올리는 역할.

 

* FAT 은 데이터영역의 어느 부분이 사용되고 있는지의 여부를 나타낸다.

 

* 디렉토리는 디스크에 저장된 파일들에 대한 정보를 보관하는 장소이다.

 

데이터영역 설명

 

* 클러스터로 나누어진다.

 

저장방법

 

디렉토리 아래에 파일이나 디렉토리를 생성하고 클러스터에 용량에 해당하는 만큼 배정한다.

FAT 테이블에는 클러스터 번호를 저장하고 파일의 끝이면 대응되는 FAT 테이블 클러스터 번호에는 끝을 의미하는 값을 저장한다.

 

2) 유닉스 파일시스템

 

부트블록, 수퍼블록, inode List, 데이터블록 으로 구성된다.

 

* 부트블록 : 운영체제를 주기억장치에 올리는 역할을 하는 프로그램이 들어있다.

 

* 수퍼블록 : 디스크에 대한 다양한 정보를 저장(inode 리스트 크기, 사용중인 블록수)

 

* inode_List : inode들을 모아놓은 곳이다. 한 블록에 여러개의 inode를 저장하고 있다.

 

* 데이터블록 : 일반적인 파일과 디렉토리 그리고 간접블록을 저장하는 영역이다.

 

- inode

 

파일 및 디렉토리에 대한 다양한 정보를 저장하는 곳으로 파일마다 하나씩 부여된다.

 

저장정보 : 파일형식, 접근권한, 10개의 직접 블록포인터, 간접블록 포인터(단일,이중,삼중)

 

- 저장방법

 

A디렉토리 아래에 B파일을 생성하고 데이터블록에 B 파일 블럭을 생성하고 B 파일의 정보를 inode에 저장한다.

그리고 A디렉토리에 B파일의 이름과 inode번호를 저장하고 B파일 블럭에는 . ..과 해당하는 inode번호를 저장한다.

 

파일의 크기가 큰 경우에는 직접블록포인터 10개로 할당된 모든 데이터블록을 가리킬 수 없으므로 간접 블록포인터를 이용하여 데이터블록에 할당된 간접블록을 가리키게 하고 간접블록에 포인터를 저장한다.

 

 

 

 

 

 

 

 

 

'이론 > 컴퓨터개론' 카테고리의 다른 글

프로그래밍 언어  (0) 2015.09.26
운영체제  (0) 2015.09.26
컴퓨터 구조  (0) 2015.09.26
부울대수 논리회로  (0) 2015.09.26
수의체계  (0) 2015.09.26
블로그 이미지

종환 Revolutionist-JongHwan

github.com/alciakng 항상 겸손하자.

댓글을 달아 주세요