150. UNIX, LINUX, MacOS (⭐️⭐️⭐️⭐️)
1) UNIX 개요 및 특징
벨 연구소, MIT, GE 에서 공동 개발한 운영체제
- 오픈소스 대화식 운영체제
- 대부분 C언어로 작성되어 있어 이식성이 높고 장치간 호환성이 높다
- 크기가 작고 이해하기 쉽다
- 멀티유저, 멀티태스킹 지원
- 네트워크 관리용 운영체제로 적합
- 트리 구조의 파일 시스템
- 전문적 프로그램 개발에 용이
2) UNIX 시스템의 구성
사용자 > 유틸리티 > 쉘 > 커널 > 하드웨어
-
커널: 프로그램과 하드웨어간 인터페이스 역할, 부팅시 주기억장치에 상주, CPU 스케줄링 관리, 기억장치 관리, 입출력 관리, 파일 관리, 데이터 전송 및 변환 등 여러 기능 수행
✓ 시스템 호출: 프로세스가 커널에 접근하기 위한 인터페이스 제공하는 명령어
-
쉘(Shell): 명령어 인식 및 해석기, 시스템과 사용자 간의 인터페이스, 명령어 포함된 파일 형태로 존재하며 보조기억장치에서 교체처리 가능, 파이프라인 기능 지원, 공용 Shell 이나 직접 만든 Shell 사용 가능
✓ 둘 이상의 명령을 함께 묶어 처리한 결과를 다른 명령의 입력으로 전환하는 기능
-
유틸리티: 에디터, 컴파일러, 인터프리터, 디버거
✓ 파일 디스크립터: OS가 필요로 하는 파일에 대한 정보 가진 제어블록, 파일제어블록(FCB)라고도 함. 파일마다 독립적으로 존재, 보조기억장치 내에 저장되어 있다 해당 파일이 오픈될 때 주기억장치로 이동, 파일 시스템이 관리하므로 사용자가 직접 참조 X
153. 가상기억장치 구현 기법 / 페이지 교체 알고리즘 (⭐️⭐️⭐️⭐️)
1) 개요
가상기억장치: 용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용
✓ 주소 변환: 논리적 가상주소를 물리적 실기억주소로 변환하는 것, 주소 매핑이라고도 함
✓ 인위적 연속성: 가상주소를 실주소로 바꾸어줄 때 프로세스가 갖는 가상주소 공간 상 연속적 주소가 실저장장치에서 연속적일 필요가 없다는 성질
2) 페이징 기법
가상기억장치 프로그램과 주기억장치의 영역 동일한 크기로 나눈 후 나눠진 프로그램(페이지)을 동일하게 나눠진 주기억장치의 영역(페이지 프레임)에 적재시켜 실행하는 방법
- 일반적인 페이지의 크기는 1~4KB
- 내부 단편화 발생 가능
3) 세그멘테이션 기법
가상기억장치 내 프로그램을 다양한 크기의 논리단위로 나눈 후 주기억장치에 적재시킴
- 기억공간 절약 가능
- 외부 단편화 발생 가능
- 기억장치 보호키 발생
4) 페이지 교체 알고리즘
- OPT(최적 교체): 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체함
- FIFO: 선입선출
- LRU: 가장 오랫동안 사용하지 않은 페이지 교체, 각 페이지마다 계수기(Counter)나 스택 두어 가장 오래전에 사용된 페이지 교체
- LFU: 사용 빈도가 가장 적은 페이지 교체
- NUR: 최근 사용하지 않은 페이지 교체, 참조비트와 변형비트 사용됨
154. 가상기억장치 - 기타 (⭐️⭐️⭐️⭐️)
1) 페이지 크기
페이지 크기와 페이지 수는 반비례함
2) Locality
Locality(국부성, 지역성, 구역성, 국소성)는 프로세스 실행 동안 주기억장치 참조시 일부 페이지만 집중적으로 참조하는 성질이 있다는 이론
- 시간 구역성: Loop, 스택, 부 프로그램(서브루틴), Counting(1씩 증감), 집계
- 공간 구역성: 배열 순회, 순차적 코드의 실행
3) 워킹 셋
프로세스가 일정 시간동안 자주 참조하는 페이지들의 집합
6) 스래싱(Thrashing)
프로세스 처리시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
- 다중 프로그래밍의 정도 - CPU 이용률: 종모양 곡선 (일정정도이상되면 하락)
155. 프로세스의 개요
1) 프로세스 정의
: 프로세서(처리기, CPU)에 의해 정의되는 실행중 프로그램으로, Job 또는 Task 라고도 함. 비동기적 행위 일으키는 주체.
2) PCB (프로세스 제어 블록)
OS가 프로세스에 대한 중요한 정보 저장해 놓는 곳
: 현재 상태, 포인터, 고유 식별자, 스케줄링 및 우선순위, 레지스터 정보, 주기억장치 관리 정보, 입출력상태 정보, 계정정보 저장
3) 프로세스 상태 전이
제출(Submit) -> 접수(Hold) -> 준비(Ready) <->(대기 Wait)<-> 실행(Run) -> 종료(Exit)
4) 전이 관련 용어
- Dipatch: 준비상태로 대기하는 프로세스중 하나가 프로세서 할당받아 실행상태로 전이되는 과정
- Wake Up: 입출력 작업 완료되어 대기상태에서 준비상태로 전이
- Spooling: 한번에 입출력 하기위해 디스크에 저장
- 교통량 제어기 (Traffic Controller): 프로세스 상태에 대한 조사와 통보
5) 스레드
프로세스 내 작업단위
1프로세스:1스레드 => 단일 스레드, 1프로세스:n스레드 => 다중 스레드
157. 주요 스케줄링 알고리즘
3) HRN
서비스 실행 시간이 짧거나 대기시간이 긴 프로세스의 경우 우선순위가 높아짐
- 우선순위 계산식 = (대기시간+서비스시간) / 서비스시간
해서 높은쪽이 우선순위다
160. 인터넷
2) IP주소
- A class (0~127): 국가나 대형 통신망에 사용
- B class (128~191): 중대형 통신망에 사용
- C class (192~223): 소규모 통신망에 사용
- D class (224~239): 멀티캐스트용으로 사용
3) 서브네팅(Subnetting)
할당된 네트워크 주소를 다시 여러개의 작은 네트워크로 나누어 사용
예제
"3개의 서브넷으로 나눈다"
=> 3을 표현할 앞자리 2비트만 제외하고 나머지 6비트로 호스트 구성
- 00000000~00111111
- 01000000~01111111
- 11000000~11111111
4) IPv6 개요
IPv4의 주소부족 문제 해결하기 위해 개발
- 128비트의 긴 주소 사용하여 주소부족문제 해결
- IPv4에 비해 자료전송속도 빠름
- 인증성, 기밀성, 데이터무결성 지원하여 보안문제 해결
- 주소의 확장성, 융통성, 연동성이 뛰어남
- IPv4와 호환성이 좋음
- 등급별, 서비스별로 패킷을 구분할 수 있고 패킷 크기에 제한이 없음
5) IPv6의 구성
다음과 같이 세 가지 주소체계로 나누어짐
- 유니캐스트: 단일 단일 통신
- 멀티캐스트: 단일 다중 통신
- 애니캐스트: 단일 가까운단일 통신
161, 162. OSI 참조 모델 / 관련 장비
1) 개요
- 하위계층: 물리계층->데이터링크계층->네트워크계층 (1~3단계)
- 상위 계층: 전송계층->세션셰층->표현계층-> 응용계층 (4~7딘계)
4) 물리 계층
: 전기적, 기능적, 절차적 기능 정의
리피터; 신호가 왜곡되거나 약해질 경우 원래형태로 재생하여 다시 전송
5) 데이터 링크 계층
: 두개의 인접한 통신시스템 사이에 동기화, 흐름 제어, 에러 제어
브리지; LAN-LAN 연결 또는 LAN-세그먼트 연결
스위치; 더 큰 LAN을 만드는 장치
6) 네트워크 계층
: 경로 설정 및 네트워크 연결 관리
라우터; LAN 연결기능에 데이터 전송의 최적경로 선택기능 추가
7) 전송 계층
: 단말기 사이에 오류 수정과 흐름제어 수행 (데이터링크와 구분)
8) 세션 계층
: 대화 제어
게이트웨이; 세션계층-표현계층-응용계층 연결
9) 표현 계층
: 코드 변환, 데이터 암호화, 데이터 압축 등
10) 응용 계층
: 사용자가 OSI 환경에 접근할 수 있는 서비스 제공
164. TCP/IP
1) 개요
다른 기종의 컴퓨터들이 데이터 주고받을 수 있게 하는 표준 프로토콜
3) 응용계층의 주요 프로토콜
- MQTT: 발행-구독 기반의 메시징 프로토콜로, IoT 환경에서 자주 사용
4) 전송계층의 주요 프로토콜
- TCP: 기본 헤더는 20-60byte, 100byte까지 확장 가능
- UDP(User Datagram Protocol): 흐름 제어나 순서 제어 없어 전송속도 빠름
- RTCP: 모든 참여자에게 컨트롤 패킷 주기적으로 전송, 32비트의 경계로 끝남
5) 인터넷 계층의 주요 프로토콜
- ICMP
- ARP(Address Resolution Protocol): 호스트의 IP주소를 물리적 주소로 바꿈
- RARP: 물리적 주소를 IP주소로 변환
6) 네트워크 액세스 계층의 주요 프로토콜
: 이더넷, IEEE 802, HDLC, X.25, RS-232C
👉🏻 IEEE 802는 LAN, IEEE 802.3은 CSMA/CD를 위한 표준