리눅스마스터1급 공부 (시작일: 2015.08.11, 시험일: 2015.09.12)

- 리눅스 기초 전혀 없음...


교재: "국가공인" 리눅스마스터 1급 ((주)수퍼유저, 저자 박성수, 강기봉, 정우영)


리눅스 마스터 1급

저자
박성수, 강기봉 지음
출판사
수퍼유저코리아 | 2014-01-01 출간
카테고리
컴퓨터/IT
책소개
국가공인 리눅스마스터 1급 교재이다. 리눅스마스터 1급 1차, ...
가격비교

 



Part1. 리눅스 실무의 이해

Chapter 01. 리눅스의 개요

1.1 운영체제의 개요

1.1.1 운영체제의 이해

1. 개념

-운영체제란 사용자가 컴퓨터 시스템을 손쉽게 사용하도록 하고 시스템 자원들, 즉 기억장치, 프로세서, 입출력 장치, 정보, 네트워크 및 데이터 등을 효율적으로 관리할 수 있도록 하는 프로그램들의 집합

- 사람이 사용하는 응용프로그램이 컴퓨터의 하드웨어를 사용할 수 있도록 하기 위한 시스템 프로그램으로 표현할 수 있음. 즉, 컴퓨터 내부에 장착되어 있는 하드웨어는 기계에 불과하며, 사람이 사용하는 응용프로그램(예, 오피스, 게임 등)이 제대로 작동하기 위해서는 해당 프로그램을 하드웨어에 설치하여 사용해야 하는데, 이를 위해 운영체제는 사용하는 사람과의 인터페이스 역할을 함. 그리고 운영체제는 컴퓨터가 부팅하면서 ROM-BIOS에서 제어권을 넘겨받아 컴퓨터의 입력, 출력 등 컴퓨터의 장치들에 대한 모든 제어를 담당하게 되며, 무엇보다 중요한 것은 운영체제가 메모리상에서 실행되고 있는 프로세스들을 제어하고 관리함

- 운영체제란 시스템 자원들, 즉 기억장치, 프로세서, 입출력 장치, 정보, 네트워크 및 데이터 등을 효율적으로 관리할 수 있도록 하는 프로그램의 집합이라고도 할 수 있음


- 운영체제의 목적과 주요 역할

1. 효율적 사용(efficient use): 컴퓨터 자원의 효율적인 활용을 보장

2. 사용자 편리성(user convenience): 컴퓨터 시스템의 편리한 사용법 제공

3. 비간섭(noninterference): 운영체제 사용자들의 활동에 간섭 방지

- 목적에 따른 주요 역할

1. 컴퓨터 하드웨어 제어

2. 사용자들 간의 하드웨어 자원 공유

3. 시스템 자원을 스케줄링하여 효율적으로 활용 할 수 있게 함

4. 입출력이 용이하게 하는 기능 제공

5. 응용 프로그램의 작성과 실행을 편리하게 함

6. 오류의 발생을 막고 복구 지원

7. 테이터의 조직화, 네트워크 통신 처리 기능 수행

8. 편리한 사용자 인터페이스 제공

- 운영체제를 구성하는 요소

1. 제어 프로그램: 시스템을 운영하기 위한 기능을 수행하는 프로그램으로 감시 프로그램, 데이터 관리 프로그램, 작업 관리 프로그램 등이 있음

2. 처리 프로그램: 컴퓨터기 실제적으로 작업을 수행하기 위한 기능을 지원하는 프로그램으로 언어 번역 프로그램, 서비스 프로그램과 사용자가 작성한 문제 처리 프로그램 등과 같이 컴퓨터 제작 회사로부터 제공된 프로그램이 이에 속함

- 시스템 성능을 나타내는 4가지 요소

1. Throughput: 단위 시간당 처리 능력을 나타냄

2. Turnaround Time: 작업이 제출되어서 결과를 얻을 때까지의 총 소요 시간

3. 신뢰도(Reliability): 시스템이 얼마나 정확하게 작동되는지를 나타냄

4. 사용 가능도(Availability): 시스템에서 곧 사용할 수 있는 정도를 나타냄

- 운영체제는 다섯 부분으로 나눌 수 있음

1. 커널(kernel): 모든 운영체제에 포함되어 있으며 항상 메모리에 상주하고, 장치들을 관리함

2. 쉘(Shell): 커널과 사용자, 커널과 어플리케이션들과의 대화수단이 되는 프로그램

3. 파일 시스템(File System): 데이터 및 장치 관리의 객체가 되는 파일 시스템 구조체

4. 시스템 소프트웨어(System Software): 커널 외에 시스템 자원 관리를 위한 소프트웨어

5. 어플리케이션(Application): apache, mysql, vsftqd 등과 같이 운영체제에 기본적으로 포함되어 제공되는 수많은 응용프로그램


2. 운영체제의 특징

1. 다중 사용자 시스템(Multi-user System): 시스템 유틸리티와 자원의 공유가 자유롭고 각 사용자마다 할당된 자원을 이용하여 다른 사용자와 독립적으로 작업 진행 가능

2. 다중 작업 시스템(Multi-tasking System): 여러 사용자가 여러 가지의 작업을 동시에 수행 가능

3. 강력한 네트워킹

4. 편리한 사용자 인터페이스: 여러 개의 화면을 동시에 사용할 수 있는 멀티스레딩과 멀티미디어를 활용한 작업 가능

5. 계층적 파일 관리 시스템: 계층적 디렉토리 구조를 사용해서 디렉토리 및 파일 관리 용이

6. 가상메모리: 디스크 가상 메모리를 사용하여 실제 RAM 용량의 부족을 해결하거나 주기억 장치의 용량을 증대하는 효과 제공

7. 고성능의 프로세서에 최적화

8. 개방형 운영체제 및 뛰어난 이식성


3. 운영체제의 역사

 연도

특징 

주요 내용 

1940년대 

운영체제 없음 

기계어 사용 

1950년대 

일괄 처리 시스템 

단일 흐름 일괄 처리

작업간의 전이 문제 중시

오류 복구 처리 

1960년대 

다중 프로그래밍

시분할 시스템

실시간 처리 시스템 

가상 기억 장치

고급 언어로 운영체제 작성

데이터 통신 지원용 운영체제 

1970년대 중반 

범용 시스템 개념 도입 

다중 모드 시스템

일괄처리, 시분할 처리, 다중 모드 

 1980년대

마이크로컴퓨터 운영체제

사용자에게 친절한 시스템 개념 

가상 기억 장치

통신망 서비스 운영체제

데이터베이스 중요 인식 

1990년대 이후 

분산처리 개념

네트워크 개념

개인용 컴퓨터

소규모 서버

소규모 서버

보안과 인증의 강화

에이전트 프로그램의 활성화 


4. 시스템 프로그램

- 시스템 프로그램이란 사용자가 컴퓨터를 사용할 때 편리하게 이용할 수 있도록 기능을 제공하는 프로그램을 의미

- 시스템 프로그램으로는 사용자가 작성한 원시 응용 프로그램을 컴퓨터 시스템에서 실행할 수 있는 목적 프로그램으로 번역하는 언어 번역 프로그램, 자주 사용되는 루틴에 대한 확장 코드를 생성하는 매크로 프로세서, 목적 프로그램을 실행하기 위해서 메모리에 적재하고 배치 주소를 옮기는 로더 등이 있음

5. 기억 장치 관리

- 기억 장치는 프로그램이나 데이터를 저장하는 부분이다. 프로그램이 실행되기 위해서는 반드시 주기억 장치에 적재되어야 함

1. 기억 장치: 기억 장치는 주기억 장치와 보조 기억 장치로 구분. CPU가 프로그램과 데이터를 즉각적으로 실행하고 참조하기 위해서는 주기억 장치에 있어야 되지만 휘발성 메모리이기 때문에 많은 양의 프로그램과 데이터는 보조 기억 장치를 사용

캐시 기억 장치: 캐시는 CPU와 주기억장치 사이에 위치해서 주기억 장치의 정보들을 고속으로 CPU에 제공하는 최상위 계층의 메모리. 속도가 빠르지만 비싸고 용량이 작음

2. 분할 기억 장치 관리(Partitioned Memory Management): 프로그램이나 데이터를 적재할 때 기억 장치의 연속된 공간을 할당하는 것이 아니라 한 부분에 적재함으로 하나의 시스템에 여러 개의 프로그램이 적재되어 실행될 수 있음

1) 다중 연속 고정 분할 방법(Multiple Contiguous Fixed Partition): 다중 프로그래밍 환경에서 절대 번역*과 적재를 사용할 때 고정된 분할을 이용. 

(*절대 번역: 프로그램이 주기억 장소에 적재될 때 프로그램이 반드시 위치해야 하는 주소 고정)

2) 다중 연속 가변 분할 방법(Multiple Contiguous Variable Partition): 각 작업의 크기에 따라 분할 영역 할당. 

3) 기억 장소 배치 기법(Storage Placement Strategy): 시스템에 새로 적재되는 프로그램과 데이터를 주기억 장치의 어디에 배치할 것인지를 결정

a. 최초 적합(First-Fit) 방법

- 가용 공간 중 수용할 수 있는 첫 번째 있는 기억 공간 할당

b. 최적 적합(Best-Fit) 방법

- 가용 공간을 정렬하고 필요로 하는 공간과 같거나 수용 가능한 공간 중 가장 작은 것을 할당

- 장점으로는 가용 공간 중에서 크기가 가장 작은 기억 장소가 할당되어 공간 낭비가 적지만 단점으로는 아주 적인 비할당 영역이 많이 생길 수 있고, 가용 공간이 크기순으로 반드시 정렬

c. 최악 적합(Worst-Fit) 방법

- 가용 공간을 내림차순으로 정렬하고 수용 가능한 공간 중 가장 큰 것을 할당

- 장점으로는 가장 큰 기억 공간을 할당하므로 나중에 큰 기억 장소가 필요할 때 유용하며, 정렬된 가용 공간 중 가장 큰 첫 번째를 할당하므로 검색이 빠름. 단점으로는 가용 공간이 내림차순으로 정렬되고 낭비가 발생생

예) 주기억장치 관리기법인 최악, 최초, 최적 적합기법을 각각 사용할 때, 각 방법에 대하여 5K의 프로그램이 할당되는 영역을 각 기법의 순서대로 나열

영역구분

OS 

영역 A 

9K 

영역 B

15K

영역 C 

10K

영역 D 

30K

-> 최초는 할당될 수 있는 크기의 첫 영역, 최적은 단편화가 가장 적은 영역, 최악은 내부단편화가 가장 큰 영역이기 때문에 영역 D, 영역 A, 영역 A  가 된다. 

3. 재배치 분할 기억 장치 관리: 기억 장치를 할당하고 재 할당하는 과정을 반복하면 수많은 파티션들로 인하여 작업을 할당하거나 처리하기 곤란할 정도로 아주 작은 기억 공간들이 발생하는 데 이러한 작은 기억 장소를 조각(Fragment)라고 하는데 이것을 한 곳에 모아서 커다란 기억 공간으로 만들 필요 있음

1) 압축(compaction or recompaction): 한쪽으로 몰아주는 압축 작업을 통하여 기억공간 만듦

2) 재배치 레지스터 이용: 재배치 레지스터는 필요에 따라 분할 기억 장소의 경계를 나타내는 베이스=경계 재배치( Base-Bound Relocation) 레지스터의 값을 조정해서 프로세스의 적재 위치를 동적으로 재배치 함

4. 가상 기억 장치(Virtual Memory): 프로세스에 의해 참조되는 주소를 주기억 장치에서 사용할 수 있는 주소와는 별개로 프로그램을 실행해야 할 부분만 컴퓨터에 적재 후, 가상의 주소를 지정해서 마치 전체 프로그램이 모두 있는 것처럼 컴퓨터를 인식

1) 페이지 기억 장치 관리(Paged Memory Management): 가상 기억 공간을 구현하기 위해 메모리를 일정한 크기의 페이지 프레임(Page Frame)으로 분할하고 페이지 맵(Page Map)을 이용해서 실제 주소 공간을 가상 주소 공간과 사상(Mapping)시키는 관리 기법

2) 세그먼트 기억 장치 관리(Segmented Memory Management): 페이지 기억 장치 관리가 고정된 크기의 페이지 프레임을 사용하는 방법에 비해 세그먼트 기억 장치 관리는 크기가 다른 세그먼트 프레임을 사용하는 방법. 페이지 프레임에 비해 크기가 융통성이 있어 내부 단편화 현상을 줄일 수 있고, 세그먼트 맵을 이용해서 고속으로 주소를 계산할 수 있지만 세그먼트 크기가 모두 다를 수 있기 때문에 세그먼트 크기에 대한 정보를 별도로 관리해야하고, 빈번한 세그먼트 적재와 교체가 발생할 수 있음

5. 페이지 대체(Page Replacement) 알고리즘: 페이지 대체 알고리즘은 페이지 부재가 발생할 때 새로운 페이지를 적재하기 위해서 기존의 페이지를 제거하는 알고리즘

1) 최적화 원칙: 가장 오래 사용되지 않을 페이지 교체체(현실적 불가능(미래예측불가))

2) 무작위 페이지 교체: 임의로 페이지를 선택하여 교체하지만 최악의 경우 바로 뒤에 참조될 페이지가 교체될 수 있기 때문에 거의 사용하지 않음

3) FIFO(First In First Out): 먼저 적재된 페이지 제거. 가장 오래 적재된 페이지가 사용될 가능성이 높아 바람직하지 않음

4) LRU(Least Recently Used): 최근에 가장 적게 사용된 페이지를 제거하는 방법으로 참조 페이지들의 사용 시간과 같은 정보를 관리하는 오버헤드가 있음. 페이지 엔트리와 시간 관리의 오버헤드로 인해 잘 사용 안함

5) LFU(Least Frequently Used): 가장 적게 사용 된 것을 삭제. 최악의 경우 가장 나중에 적재된 페이지가 계속 참조되어야 하지만 참조 회수가 적다는 이유로 교체되는 문제 발생

6) NUR(Not Used Resently): 최근에 사용하지 않은 페이지 삭제. 최근에 사용하지 않은 페이지는 순환의 경우 곧 사용할 순서인 경우가 많음

7) 2차 기회(Second Chance): 페이지를 단번에 교체하지 않고 태그를 한번 세팅하고 두 번째에 교체

8) 국부성(Locality): 프로그램이나 데이터는 인접한 부분이 집중적으로 참조될 가능성이 매우 높기 때문에 공간적으로 인접하지 않은 곳의 프레임 교체


1.1.2 운영체제의 종류

1. 리눅스

- 리눅스의 특징

1) 실시간 페이지 적재 기능: 리눅스를 사용하면서 메모리를 페이지(메모리) 단위로 관리하는 것을 뜻하는 것으로 페이지 단위로 메모리를 할당하고 스왑을 하며, 운영체제를 사용할 때 필요한 만큼만 메모리를 사용하도록 하여 메모리를 효율적으로 관리

2) CPU 최적화: 인텔 계열의 프로세서를 비롯하여 Cyrix와 AMD 프로세서 등에도 최적화

3) 뛰어난 네트워킹

4) 가상 콘솔: 개인이 사용하는 하나의 PC의 물리적인 모니터 하나로 여러 개의 가상 화면을 두는 기능

5) 유연한 사용자 환경, 효율적 가상 메모리, 동적 공유 라이브러리 제공, 완벽한 멀팅 저, 멀티태스킹 시스템, 최신 웹서비스 제공 등...

2. 마이크로소프트 윈도우즈

- 그래픽 인터페이스 운영체제. 뭐 별 내용 없음

3. iOS와 OSX

- 별 내용 없고 네 개의 계층이 있음(코어 OS 계층, 코어 서비스 계층, 미디어 계층, 코코아 터치 계층)

4. UNIX


반응형

+ Recent posts