티스토리 뷰

운영체제 종류

 

운영체제 (Oprating System)

사용자가 컴퓨터의 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공하는 소프트웨어

 

운영체제 특징

사용자 편리성 한정된 시스템 자원을 효과적으로 사용하도록 관리 및 운영

인터페이스 기능 담당 컴퓨터 시스템과 사용자 연결

스케줄링 담당 다중 사용자와 다중 응용 프로그램 환경하에 자원의 상태 파악, 분배하기 위한 스케줄링을 담당

자원 관리 CPU, 메모리 공간, 기억장치 , 입출력 장치 등 자원 관리

제어 기능 입출력 장치와 사용자 프로그램 제어

 

 사용자 명령에 대한 처리 역할 담당, 커널에 전달하는 명령어 해석기 - CUI쉘, GUI쉘

커널 하드웨어와 관련된 내부적 역할 담당, 운영체제의 핵심 기능이 모여있는 프로그램

커널의 기능 프로세스 관리, 기억장치 관리, 주변장치 관리, 파일 관리

 

윈도우즈 운영체제 특징 - 지선자오

GUI 제공, 선점형 멀티태스킹, 자동감지(Plug & Play), OLE 사용

 

유닉스 운영체제 특징 - 대다사이계

대화식 운영체제 기능 제공, 다중 작업 기능 제공, 다중 사용자 기능 제공, 이식성 제공, 계층적 트리 구조파일 시스템 제공

 

리눅스

유닉스 기반, 소스코드가 공개된 오픈 소스 기반의 운영체제 

 


운영체제 기본 명령어 활용

리눅스/유닉스 파일 접근 권한 유형

접근 권한 유형(설정 명령어 : chown, chgrp)

접근권한 설명
User 파일을 사용하는 사용자(Owner)
Group 소유자를 제외, 파일과 같은 그룹에 속해있는 모든 사용자 모임
Other 그 밖의 사용자

 

접근 권한 변경(chmod)

옵션 -R : 하위 디렉토리와 파일 권한까지 변경

permission : 기호나 8진수로 접근 권한 지정

 

접근 권한 기호 

대상 u(user), g(group), o(other), a(all)
연산자 +(추가), -(제거, =(지정)
접근 권한 r(읽기-4), w(쓰기-2), x(실행-1) 
chmod o-w a.txt - a.txt에 대한 other의 쓰기권한 제거
chmod 664 b.c - user, group에 대한 rw(6, 읽고 쓰기) 권한, others에 r(4, 읽기) 권한 설정

 


운영체제 핵심 기능 파악 ⭐

운영체제는 중앙처리장치, 메모리, 스토리지, 주변 기기를 적절히 관리

 

1) 운영체제 핵심 기능

메모리 관리 프로그램의 실행이 종료될 때까지 메모리를 가용한 상태로 유지, 관리하는 기능
메모리에 있는 프로그램은 CPU로 이동해 처리
(MMU : 주소 매핑 역할, CPU는 가상 주소, 메모리는 물리 주소 사용)
프로세스 관리 프로세스 관리 기법에는 일시중지 및 재실행,
동기화, 통신, 교착상태 처리, 프로세스 생성 삭제가 있음

 

메모리(주기억장치) 관리

- 기억장치를 관리하는 운영체제의 일부

- 기억장치의 어느 부분이 사용 중인지 조사, 기억장치 할당, 회수

- 디스크와 주기억장치 간 프로세스 교체 작업 관리

 

메모리 관리 기법 - 반배할교

반입 기법 메모리로 적재 시기 결정(when)
주기억장치에 적재할 프로세스의 반입 시기를 결정
요구 반입 기법, 예상 반입 기법
배치 기법 메모리 적재 위치 결정(where)
디스크에 있는 프로세스를 주기억장치의 어느 위치에 저장할 것인지 결정
최초 적합(First-fit), 최적 적합(Best-fit), 최악 적합(Worst-fit)
할당 기법
연단다 분페세
메모리 적재 방법 결정(how)
실행할 프로세스를 주기억장치에 어떤 방법으로 할당할 것인지 결정
연속 할당 기법 - 단일 분할 할당 기법 / 다중 분할 할당 기법
분산 할당 기법 - 페이징 기법(동일) / 세그멘테이션 기법(가변) / 페이징-세그멘테이션 기법
교체 기법 메모리 교체 대상 결정(who)
재배치 기법으로 주기억장치에 있는 프로세스 중 어떤 프로세스를 제거할 지 결정
프로세스의 Swap In/Out,
FIFO, LFU(참조횟수 교체기법), LRU(최근에 참조되지 않은 페이지), Optimal, MFU
 

 

내부 단편화

고정 분할 할당 방식이나 페이징 기법 사용 시 발생하는 메모리 단편화

분할된 공간에 프로세스를 적재한 후 남은 공간

- Slab Allocator(메모리를 사전에 분할하고 요청 시 할당), 통합, 압축으로 해결

 

외부 단편화

가변 분할 할당 방식이나 세그멘테이션 기법 사용 시 발생하는 메모리 단편화

할당된 크기가 프로세스 크기 보다 작아 사용하지 못하는 공간

- 버디 메모리 할당(1/2로 나누면서 최적의 공간으로 할당), 통합, 압축으로 해결

 

스레싱 : 페이징 기법의 문제점

프로세스가 계속적으로 페이지 부재가 발생해 프로세스의 실처리 시간보다 페이지 교체 시간이 더 많아지는 현상

 

페이징 기법 문제점의 해결방안

워킹세트 : 프로세스가 많이 참조하는 페이지들의 집합을 주기억장치에 상주시켜 페이지 교체 현상을 줄이는 방법

페이지 부재 빈도(PFF page-fault frequency) : 페이지 부재율의 상한과 하한을 정해 직접적으로 페이지 부재율을 예측하고 조절하는 기법

 

지역성

프로세스가 실행되는 동안 주기억장치를 참조할 때 일부페이지만 집중적으로 참조하는 특성

프로세스가 집중적으로 사용하는 페이지를 알아내는 방법으로 가상기억장치 관리의 이론적 근거

시간 지역성(Loop, stack), 공간 지역성(배열순회), 순차 지역성(명령어가 순차적으로 실행)

 

 

프로세스

CPU에 의해 처리되는 실행 중인 프로그램 = 작업(job), 태스크(task)

 

프로세스 상태 - 생준실대완

생성 상태 create 사용자로 인해 프로세스가 생성된 상태
준비 상태 ready CPU에 할당받을 수 있는 상태
실행 상태 running CPU를 할당받아 동작 중인 상태
대기 상태 waiting CPU 양도 후, 대기 리스트에서 기다리는 상태
완료 상태 complete CPU 할당 받고 주어진 시간에 완전히 수행한 상태

 

프로세스 상태 전이 - 디타블웨

디스패치
Dispatch
준비상태의 프로세스를 선정해 CPU 할당(문맥교환 발생)
할당 시간 초과
Timeout
CPU 할당받은 프로세스는 지정시간 초과 시 스케줄러에 의해 PCB저장,
CPU 반납 후 다시 준비상태로 전이
타임 슬라이스 만료, 선점 시 타임아웃 발생
입출력 발생
Block
실행상태의 프로세스가 할당 시간을 초과하기 전, 입출력이나 기타 사건이
발생(block)해 CPU를 반납하고 입출력 완료될 때까지 대기 상태로 전이
시스템 콜, I/O 작업시작, 프로세스 간 통신 시 block 발생
깨움
Wake-up
입출력 종료되면 대기 상태의 프로세스에게 입출력 종료 사실을 알려주고
준비 상태로 전이

 

프로세스 구성

사용자 작성 코드 : 사용자가 작성한 프로그램 코드, 프로세스 생성 - fork()명령어

사용자 사용 데이터 : 사용자 작성 프로그램 코드에서 사용하는 데이터

스택 : 함수 호출 및 인자 값 전송에 사용

프로세스 제어 블록 PCB : 운영체제가 프로세스 관리를 위해 필요한 자료를 담고있는 자료구조

 

PCB

프로세스 생성 시 만들어지고 메인 메모리에 유지, 운영체제에서 한 프로세스의 전체를 정의

PCB 구성요소 - 프상카레 스계입메

PID(프로세스 식별자) / 프로세스 상태 / 프로그램 카운트 / 레지스터 저장영역

프로세서 스케줄링 정보 / 계정 정보 / 입출력 상태 정보 / 메모리 관리 정보

 

 

스레드

프로세스보다 가볍고 독립적으로 수행되는 순차적인 제어의 흐름

실행제어만 분리한 프로세스 실행단위로 한 개의 프로세스는 여러 스레드를 가질 수 있다.

 

프로세스 스케줄링 용어

서비스 시간 : 프로세스가 결과 산출하기까지의 소요 시간

응답 시간(Response time) : 프로세스가 입력되어 서비스 요청하고 반응하기 시작할 때까지의 소요시간

반환 시간(Turnaround time) : 프로세스가 입력, 수행하고 결과 산출까지의 소요시간 (반환시간 = 대기시간 + 수행시간)

대기 시간 : 대기 큐의 프로세스가 결과를 산출하기까지의 평균 소요시간

평균 대기 시간 : 프로세스가 대기 큐에서 대기하는 평균 시간

종료 시간 : 요구되는 프로세싱 타임을 모두 수행하고 종료된 시간

시간 할당량(Time Quantum) : 한 프로세스가 프로세서를 독점하는 걸 방지하기 위해 서비스되는 시간할당량

응답률 : HRN 스케줄링에 사용되며 높을수록 우선 순위 높음 (대기시간 + 서비스 시간) / 서비스 시간

 

 

반종도 대반서

반환시간 = 종료시간 - 도착시간
대기시간 = 반환시간 - 서비스시간

 

프로세스 스케줄링

CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 작업

처리율과 CPU 이용률을 증가시키고 오버헤드, 응답시간, 반환시간, 대기시간을 최소화 시키기 위한 기법

 

  선점형(Preemptive) 스케줄링 비선점형(Non Preemptive) 스케줄링
개념 프로세스가 CPU를 차지 시 우선순위 높은 프로세스가 현재 프로세스를 중단, CPU 점유하는 스케줄링 방식 한 프로세스가 CPU를 할당 받으면 작업 종료 후 CPU 반환 시까지 CPU 점유가 불가능한 스케줄 방식
장점 빠른 응답
대화적 시분할 시스템에 적합
응답시간 예상 용이
모든 프로세스 요구를 공정하게 처리
단점 높은 우선순위 프로세스가 들어오는 경우 오버헤드 초래 짧은 작업을 수행하는 프로세스가 긴 작업 종료 시까지 대기

 

선점형 스케줄링 - SMMR

SRT
Shortest Remaining Time First
가장 짧은 시간이 소요되는 프로세스를 먼저 수행, 남은 처리 시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 프로세스가 선점됨
짧은 수행 시간 프로세스 우선 수행
다단계 큐 MLQ
Multi Level
Queue
작업들을 여러 종류 그룹으로 분할, 여러 개의 큐를 이용해 상위 단계 작업에 의한 하위 단계 작업이 선점 당함
각 큐는 독자적인 스케줄링을 가짐
다단계 피드백 큐 MLFQ
Multi Level
Feedback Queue
프로세스 특성에 따라 큐마다 서로 다른 CPU 시간 할당량 부여
FCFS(FIFO)와 라운드로빈 스케줄링의 혼합
새로운 프로세스는 높은 우선순위, 프로세스 실행시간이 길어질수록 낮은 우선순위 큐로 이동하고 마지막 단계는 라운드 로빈 방식 적용
라운드 로빈 같은 크기의 CPU 시간을 할당, 프로세스가 할당된 시간 내에 처리 완료를 못하면 가장 뒤로 보내지고 CPU는 대기 중인 다음 프로세스로 넘어감
시간 할당량 중요, 균등한 CPU 점유시간, 시분할 시스템 사용

 

비선점형 스케줄링 - 우기HFS

우선순위
Priority
프로세스 별로 우선순위가 주어지고 CPU를 할당
동일 순위는 FCFS
기한부
Deadline
작업들이 명시된 시간이나 기한 내에 완료되도록 계획
요청에 명시된 시간 내 처리 보장
HRN 대기 중인 프로세스 중 현재 응답률이 가장 높은 걸 선택
HRN 우선순위 = (대기시간 + 서비스시간) / 서비스시간
기아 현상 최소화 기법 (SJF 약점 보완)
FCFS
First Come
First Service
프로세스가 대기 큐에 도착한 순서대로 CPU를 할당(FIFO)
SJF
Shortest
Job First
프로세스 도착시점에 따라 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원 점유
준비 큐 작업 중 가장 짧은 작업부터 수행, 평균 대기시간 최소
CPU 요구시간이 긴 작업과 짧은 작업 간 불평등이 심해, CPU 요구 시간이 긴 프로세스는 기아 현상 발생

 

프로세스 관리 - 교착상태 Deadlock

다중 프로세싱 환경에서 두 개 이상의 프로세스가 특정 자원할당을 무한정 대기하는 상태

 

교착상태 발생 조건 - 상점비환

상호배제
Mutual Exclusive
프로세스가 자원을 배타적으로 점유해 다른 프로세스가 자원을 사용할 수 없는 상태
점유와 대기
Hold & Wait
한 프로세스가 자원을 점유하고 있으면서 또 다른 자원을 요청하여 대기하는 상태
비선점
Non Preemption
한 프로세스가 점유한 자원에 대해 다른 프로세스가 선점할 수 없고, 점유한 프로세스만이 해제 가능한 상태
환형대기
Circular Wait
두 개 이상의 프로세스 간 자원의 점유와 대기가 하나의 원형을 구성한 상태

 

교착상태 해결방법 - 예회발복

예방
Prevention
상호배제를 제외한 나머지 교착상태 발생조건을 위배(부정)하는 방안 점유자원 해제 후 새 자원 요청
회피
Avoidance
안전한 상태를 유지할 수 있는 요구만 수락 은행가 알고리즘
Wound-Wait, Wait-Die
발견
Detection
시스템 상태를 감시 알고리즘 통해 교착 상태 검사 지원할당 그래프
Wait for Graph
복구
Recovery
교착상태가 없어질 때까지 프로세스 순차적 제거, 희생자 선택해야하고 기아 상태 발생 프로세스 Kill, 자원선점

 

 

2) 가상화, 클라우드

 

가상화 Virtualization

물리적인 리소스를 사용자에게 하나 또는 여러 개로 보이게 하는 기술

(20%  사용하는 서버용량을 가상화로 서버 가동률을 60~70% 이상 올릴 수 있음) 

 

가상화 종류

플랫폼 가상화 : 하드웨어 플랫폼 위에 실행되는 호스트 프로그램이 게스트 프로그램을 만들어 독립적 환경처럼 보이게 하는 방법

리소스 가상화 : 게스트 소프트웨어 위에서 독립된 하드웨어에서 소프트웨어가 실행되는 것처럼 활용하는 기법

메모리, 저장 장치, 네트워크 등을 결합하거나 나누기 때문에 사용자는 가상화된 물리적 장치가 어떤 위치에 있는지 알기 어렵다.

 

가상화 기술 요소

컴퓨팅 가상화 물리적으로 컴퓨터 리소스를 가상화해 논리적 단위로 리소스를 활용할 수 있도록 하는 기술
서버 이용률 향상(하나의 시스템에서 운영체제 동시 가동)
하이퍼바이저
스토리지 가상화 스토리지와 서버 사이에 SW/HW 계층을 추가해 스토리지를 논리적으로 제어 및 활용할 수 있도록 하는 기술
이기종 스토리지 시스템의 통합을 가능하게 하는 기술
분산파일 시스템
I/O 가상화 서버와 I/O 디바이스 사이에 위치하는 미들웨어 계층
서버의 I/O 자원을 물리적으로 분리하고 케이블과 스위치 구성을 단순화해 효율적인 연결을 지원하는 기술
가상 네트워크 인터페이스 카드 NIC
컨테이너 컨테이너화된 애플리케이션들이 단일 운영체제 상에서 실행되도록 해주는 기술
하이퍼바이저 없이 운영체제가 격리된 프로세스로 동작해 오버헤드 낮음
도커
분산처리 기술
Distributed Computing
여러 대의 컴퓨터 계산/저장능력(클러스터)으로 커다란 계산문제나 대용량 데이터를 처리/저장하는 기술
네트워크 가상화 기술 물리적으로 떨어진 다양한 장비들을 연결하기 위한 수단으로 중계장치(라우터, 스위치)의 가상화를 통한 가상 네트워크를 지원하는 기술
소프트웨어 정의 네트워크 SDN, NFV(범용서버, 서버에 가상화기능 구현)

 

클라우드 컴퓨팅 Cloud Computing

인터넷으로 가상화된 컴퓨터 시스템 리소스(IT 리소스)를 제공하고 정보를 자신의 컴퓨터가 아닌 클라우드(인터넷)에 연결된 다른 컴퓨터로 처리하는 기술

 

클라우드 컴퓨팅 분류 - 사공하

사설 클라우드
Private Cloud
기업이나 조직 내부에서 보유하는 컴퓨팅 자원(IDC, 서버)으로 내부에 구축돼 운영되는 클라우드
직접 통제가 가능해 보안성을 높일 수 있음
공용 클라우드
Public Cloud
클라우드 서비스 제공 업체에서 다중 사용자를 위한 컴퓨팅 자원 서비스를 제공하는 클라우드
하이브리드 클라우드
Hybrid Cloud
기업이나 조직 내부자원을 이용한 사설 클라우드와 공용 클라우드를 모드 사용하는 클라우드

 

클라우딩 컴퓨터 유형 - 인플소

인프라형 서비스
IaaS
서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스
플랫폼형 서비스
PaaS
인프라 생성, 관리하는 복잡함 없이 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스
OS, 애플리케이션과 애플리케이션 호스팅 환경 구성의 제어권을 가짐
소프트웨어형 서비스
SaaS
소프트웨어 및 관련 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하는 서비스
주문형 소프트웨어(구글클라우드, MS 오피스)

 

댓글
최근에 올라온 글
«   2024/12   »
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
글 보관함