27. 주기억장치 할당 기법
주기억장치의 메모리는 한정되어 있기 때문에 효율적으로 관리하기 위해서 반입 전략, 배치 전략, 교체 전략 등을 사용한다.
1)연속 할당 기법
프로그램을 주기억장치에 연속으로 할당하는 기법
- 단일 분할 할당 기법 : 오버레이, 스와핑
- 다중 분할 기법 : 고정 분할 할당 기법, 동적 분할 할당 기법
2)분산 할당 기법
프로그램을 특정 단위의 조각으로 나누어 주기억장치 내에 분산 하여 할당하는 기법
단일 분할 할당 기법
주기억장치를 운영체제 영역과 사용자 영역으로 나누어 한순 간에는 오직 한 명의 사용자만이 주기억장치의 사용자 영역을 사용하는 기법
프로그램이 운영체제에 영향을 주지 않기 위해 운영체제와 프로그램의 영역을 구분하는 경계 레지스터를 사용한다.

→ 하나의 프로세스만 동작할 수 있는 기법이다.
오버레이 기법
주기억장치보다 큰 사용자 프로그램을 실행하기 위한 기법이다.

- 하나의 프로그램을 여러 개의 조각으로 분할 한 후 필요한 조각을 차례로 주기억장치에 적재한다.
- 주기억장치의 공간이 부족하면 주기억장치에 적재된 프로그램 조각 중 불필요한 조각이 위치한 장소에 새로운 프로그램의 조각을 덮어씌워 적재한다.
스와핑 기법
하나의 프로그램 전체를 주기억장치에 할당하여 사용하다가 필요에 따라 다른 프로그램과 교체하는 기법이다.

- 프로그램이 보조기억장치로 이동되는 것을 Swap Out, 프로그램이 주기억장치로 이동되는 것을 Swap In이라고 한다.
- 가상기억장치의 페이징 기법으로 발전되었다.
다중 분활 할당 기법
- 외부 단편화
분할 된 영역이 할당될 프로그램보다 작아서 프로그램이 할당될 수 없어 사용되지 않고 빈 공간으로 남아있는 분할된 전체 영역
- 내부 단편화
분할된 영역이 할당될 프로그램보다 커서 프로그램이 할당된 후 사용되지 않고 남아 있는 빈 공간
1) 고정 분할 할당 기법 = 정적 할당 기법
운영체제가 주기억 장치의 사용자 영역을 여러 개의 고정된 크기로 분할하고 준비상태 큐에서 준비 중인 프로그램을 각 영역에 할당하여 수행하는 기법이다.

- 프로그램 전체가 주기억 장치에 위치해야 한다.
- 프로그램의 크기는 다양한데 고정된 크기로 나누다보니 외부단편화나 내부단편화가 일어나 낭비되는 영역이 많다.
- 프로그램의 크기를 미리 알고 있어야 한다.
- 다중 프로그래밍을 위해 사용되었으나 지금은 사용하지 않는다.
2) 가변 분할 할당 기법 = 동적 할당 기법
단편화를 줄이기 위한 것으로 프로그램을 주기억 장치에 적재하면서 필요한 만큼의 크기로 영역을 분할하는 기법이다.

- 주기억장치를 효율적으로 사용할 수 있고 다중 프로그래밍 정도를 높일 수 있다.
- 프로세스 크기의 제약이 적다.
- 영역과 영역 사이의 단편화가 발생할 수 있다.
28. 가상기억장치 구현 기법 / 페이지 교체 알고리즘 🌟🚆
가상기억장치
보조기억장치의 일부를 주기억장치처럼 사용하는 것
- 용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용 할 수 있음
- 프로그램을 여러 작은 블록 단위로 나누어서 가상기억장치에 보관해 놓고, 프로그램 실행 시 요구되는 블록만 주기억장치에 불 연속적으로 할당하여 처리
- 주기억장치의 이용률과 다중 프로그래밍의 효율 상승
- 가상기억장치에 저장된 프로그램을 실행하려면 가상기억장치 의 주소를 주기억장치의 주소로 바꾸는 주소 변환(Mapping) 작업 이 필요
- 연속할당방식에서발생할수있는단편화를해결할수있음
페이징 기법(Paging)
가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역 을 동일한 크기로 나눈 후 나눠진 프로그램을 동일하게 나눠진 주기억장치의 영역에 적재시켜 실행하는 기법

세그먼트 기법(Segmentation) 🌟
가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적
인 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 방법

- 프로그램을 논리적인 크기로 나눈 단위를 세그먼트라고 함
- 내부 단편화는 발생하지 않으나 외부 단편화는 발생할 수 있음
- Mapping 작업을 위해서 세그먼트 맵 테이블이 필요함
- 세그먼트가 주기억장치에 적재될 때 다른 세그먼트에게 할당 된 영역을 침범할 수 없으며 이를 위해 기억장치 보호키가 필요
- 단편화
1) 내부 단편화 : 배치 후 남은 공간

2) 외부 단편화 : 배치를 못해 빈 공간으로 남아있는 공간

페이지 교체 알고리즘 🌟
페이지 부재가 발생했을 때 가상기억장치의 필요한 페이지를 주기억장치에 적재해야 하는데 이럴 경우 주기억장치의 모든 페 이지 프레임이 사용 중이면 어떤 페이지 프레임을 선택하여 교체 할 것인지 결정하는 기법
- OPT,FIFO,LRU,LFU등이있음

30.프로세스의 개요 🌟🚆
프로세스
프로세서에 의해 처리되는 사용자 프로그램이나 시스템 프로그 램을 의미
- 실행 중인 프로그램을 의미하며 작업 혹은 태스크라고도 함
PCB(Process Control Block ::프로세스 제어 블록)
운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳으로 각 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 프로세스가 완료되면 PCB가 제거됨
PCB에 저장되어 있는 정보 : 프로세스의 현재 상태, 포인터, 프로세스 고유 식별자, 스케줄링 및 프로세스의 우선순위, CPU 레지스터 정보 등등
프로세스 상태 전이🌟
프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변 화는 것을 의미

-
접수 : 제출된 작업이 디스크에 저장된 상태
-
준비 : 프로세스가 프로세서를 할당받기 전에 대기중인 상태. 잡스케줄러가 접수에서 준비 상태로 전이함.
-
실행 : 프로세스가 프로세서를 할당받아 실행되는 상태.
-
대기 : 프로세스에 입 출력이 필요하면 현재 실행 중인 프로세스가 중단되고, 입 출력이 끝날 때까지 대기하고 있는다.
-
종료 : 프로세스의 실행이 끝나고 프로세스 할당이 해제된 상태.
- Dispatch
준비 상태에 대기하고 있는 프로세스 중 하나가 프로세스를 할 당받아 실행 상태로 전이되는 과정
- Wake up
입출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태 로 전이되는 과정
- Spooling
입출력 장치의 공유 및 상대적으로 느린 입출력장치의 처리 속도 를 보완하기 위해 입출력할 데이터를 직접 장치에 보내지 않고 나 중에 한꺼번에 입출력하기 위해 디스크에 저장하는 과정
- 교통량 제어기
프로세스의 상태에 대한 조사와 통보를 담당
스레드(Thread) 🌟
- 쓰레드란 프로그램(프로세스) 실행의 단위이며
하나의 프로세스는 여러개의 쓰레드로 구성이 가능하다.

-
하나의 프로세스를 구성하는 쓰레드들은 프로세스에 할당된 메모리, 자원 등을 공유한다.
-
프로세스와 같이 실행, 준비, 대기 등의 실행 상태를 가지며
실행 상태가 변할때마다 쓰레드 문맥교환(context switching)을 수행한다.
각 쓰레드별로 자신만의 스택과 레지스터를 가진다.
- 사용자 수준의 스레드
사용자가 만든 라이브러리를 사용하여 운용하기 때문에 속도는
빠르지만 구현이 어려움
- 커널 수준의 스레드
운영체제의 커널에 의해 스레드를 운영하기 때문에 속도는 느 리지만 구현이 쉬움
32. 주요 스케줄링 알고리즘 🌟🚆
프로세스 스케줄링 기법
비선점 스케줄링
이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 강제 종료가 불가능한 스케줄링 기법
- 프로세스가 CPU를 할당받으면 완료될 때 까지 사용
- 프로세스 응답 시간 예측이 용이
- 일괄 처리 방식에 적합
- 중요한(짧은) 작업이 중요하지 않은(긴) 작업을 기다리는 경우 가 발생할 수 있음
- FCFS, SJF, 우선순위, HRN, 기한부 등의 알고리즘
FCFS (First Come First Served) 🌟
먼저 CPU를 요청하는 프로세스를 먼저 처리하는 방식

SJF(Shortest Job First ::단기 작업 우선) 🌟
준비상태 큐에서 기다리고 있는 프로세스들 중에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법

HRN(Hightest Response-ratio Next) 🌟
실행 시간이 긴 프로세스에 불리한 SJF 기법을 보완하기 위한 것으로, 대기 시간과 서비스(실행) 시간을 이용하는 기법
- 우선순위 계산 공식을 이용하여 서비스 시간이 짧은 프로세스나 대기 시간이 긴 프로세스에게 우선순위를 주어 CPU를 할당
- 우선순위를 계산하여 그 숫자가 가장 높은 것부터 낮은 순으 로 우선순위가 부여
- 우선 순위 계산식 = (대기시간 + 서비스 시간) / 서비스 시간

선점 스케줄링
하나의 프로세스가 CPU를 할당받아 사용하고 있을 때 우선순 위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있 는 스케줄링 기법
- 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사 용할 수 있음
- 우선순위가 높은 프로세스를 빠르게 처리할 수 있음
- 빠른 응답 시간을 요구하는 대화식 시분할 시스템에 사용
- 많은 오버헤드를 초래함
- 선점이 가능하도록 일정 시간 배당에 대한 인터럽트용 타이 머 클록이 필요
- Round Robin, SRT, 선점 우선순위, 다단계 큐, 다단계 피 드백 큐 등의 알고리즘
35. 인터넷 🌟🚆 🌟🌟🌟
TCP/IP 프로토콜을 기반으로 전 세계 수많은 컴퓨터와 네트워 크들이 연결된 광범위한 컴퓨터 통신망
- 미 국방성의 ARPANET에서 시작
- 유닉스 운영체제를 기반으로 함
- 인터넷에 연결된 컴퓨터는 고유한 IP 주소를 가짐
- 인터넷을 구성하기 위해서는 브리지, 라우터, 게이트웨이가 사용됨
- 백본 : 네트워크를 연결하여 중추적 역할을 하는 네트워크로 인터넷의 주가 되는 기간망을 일컫는 용어
IP주소(Internet Protocol Address) 🌟🚆 🌟🌟🌟
- 인터넷에 연결된 컴퓨터를 구분하기 위한 고유한 주소
- 8비트 씩 4부분으로 구성됨


서브네팅(Subnetting)
할당된 네트워크 주소를 다시 여러 개의 작은 네트워크로 나누 어 사용
IPv4의 주소 부족 문제를 해결하기 위한 방법
- 서브넷 마스크 : 네트워크 주소와 호스트 주소를 구분하기 위한 비트
- 각 클래스마다 다르게 사용하며 각 클래스별 디폴트 서브넷 마스크는 아래와 같음
- A Class : 255.0.0.0
- B Class : 255.255.0.0
- C Class : 255.255.255.0

IPv6 🌟🚆 🌟🌟🌟
시간이 지나면서 인터넷 사용자가 많아지면서 IPv4의 주소가 부족해지게 되어 IPv4의 주소 부족 문제를 해결하기 위해 개발 됨
- 128비트의 긴 주소를 사용하여 주소 부족 문제를 해결할 수 있고, 자료 전송 속도가 빠름
- 인증성, 기밀성, 데이터 무결성의 지원으로 보안 문제 해결 가능


도메인 네임
IP 주소를 사람이 이해하기 쉬운 문자 형태로 표현한 것 ex)

36. OSI 7 Layer 🌟🚆 🌟🌟🌟
OSI(Open System Interconnetion)7 Layer 참조 모델
다른 시스템 간의 원활한 통신을 위해 ISO(국제표준화기구)에 서 제안한 통신 규약(프로토콜)으로 컴퓨터 네트워크 프로토콜을 기능별로 나누어 각 계층으로 설명한 것


- 데이터의 흐름이 한눈에 보인다.
- 하나의 문제를 7개의 작은 문제로 나누기 때문에문제 해결이 쉽다.
- 각 계층마다 사용하는 장비가 다른데, 표준화를 통해 여러 회사의 네트워크 장비를 사용하더라도 이상 없이 작동할 수 있게 된다.
1계층 물리 계층(Physical Layer)
전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전 기적, 기능적, 절차적 특성에 대한 규칙을 정의
- 물리적 전송 매체와 신호 방식을 정의 Ÿ RS-232C, X.21 등의 표준
- 관련 장비 : 리피터, 허브
- 데이터 단위 : 비트
2계층 데이터 링크 계층(Data Link Layer)
두개의인접개방시스템들간의신뢰성있고효율적인정보전송을 할 수 있도록 함
- 주요 기능 : 흐름 제어, 프레임 동기화, 오류 제어, 순서 제어 Ÿ HDLC, LAPB, LLC, MAC, LAPD, PPP 등의 표준
- 관련 장비 : 브리지, 스위치, 랜카드
- 데이터 단위 : 프레임
3계층 네트워크 계층 (Network Layer)
개방 시스템들 간의 네트워크 연결을 관리하고 데이터의 교환 및 중계 기능
- 네트워크 연결 설정, 유지, 해제
- 경로 설정, 데이터 교환 및 중계, 트래픽 제어, 패킷 정보
전송 수행
- X.25, IP 등의 표준 Ÿ 관련 장비 : 라우터
- 데이터 단위 : 패킷
4계층 전송 계층(Transport Layer)
논리적 안정과 균일한 데이터 전송 서비스를 제공
- 종단 시스템 간의 투명한 데이터 전송을 가능하게 함
- 종단 시스템 간의 전송 연결 설정, 데이터 전송, 연결 해제 기능
- 주소 설정, 다중화, 오류 제어, 흐름 제어
- TCP,UDP등의표준
- 관련 장비 : 게이트웨이
- 데이터 단위 : 세그먼트
5계층 세션 계층(Session Layer)
송수신 측 간의 관련성을 유지하고 대화 제어를 담당
- 동기점 : 송수신 측간의 대화 동기를 위해 전송하는 정보를 일정한 부분에 두어 정보의 수신 상태를 체크하는 포인트
- 데이터 단위 : 메시지
6계층 표현 계층(Presentation Layer)
데이터를 응용 계층, 세션 계층에 보내기 전에 계층에 맞게 변환
- 서로 다른 데이터 표현 형태를 갖는 시스템 간 상호 접속을 위해 필요한 계층
- 코드 변환, 데이터 암호화, 데이터 압축, 구문 검색, 정보 형식변환,문맥관리기능
- 데이터 단위 : 메시지
7계층 애플리케이션 계층(Application Layer) ::응용 계층
사용자가 OSI 환경에 접속할 수 있도록 서비스 제공
- 프로세스 간의 정보 교환, 전자 사서함, 가상 터미널 등의 서비스 제공
37. 네트워크 관련 장비 🌟
네트워크 인터페이스 카드(Network Interface Card)
컴퓨터를 연결하는 장치로 정보 전송 시 정보가 케이블을 통해 전송될 수 있도록 정보 형태를 변경
- 이더넷 카드(::LAN) 혹은 네트워크 어댑터라고도 함
허브

스위치

라우터
LAN과 LAN의 연결 기능에 데이터 전송의 최적 경로를 선택 할 수 있는 기능을 추가
스위치 vs 라우터

브리지(Bridge)
LAN과 LAN을 연결하거나 LAN안에서 컴퓨터 그룹을 연결
게이트웨이
전 계층의 프로토콜 구조가 다른 네트워크의 연결을 수행
- LAN에서 다른 네트워크에 데이터를 송수신하는 출입구 역할 을 함