4과목 프로그래밍 언어 활용 응용 SW 기초 기술 활용 157 ~ 165

2024. 2. 12. 16:30
728x90

157. 스케줄링

: 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업.

- 장기 스케줄링, 작업 스케줄링, 상위 스케줄링: 어떤 프로세스가 시스템의 자원을 차지할 수 있도록 할 것인가를 결정하여 준비상태 큐로 보내는 작업.

- 중기 스케줄링 : 어떤 프로세스들이 CPU를 할당받을 것인지 결정

- 단기 스케줄링, 프로세서 스케줄링, 하위 스케줄링 : 프로세스가 실행되기 위해 CPU를 할당받는 시기와 특정 프로세스를 지정하는 작업. 

* 문맥 교환(Context Switching) : 하나의 프로세스에서 다른 프로세스로 CPU가 할당되는 과정에서 발생. 새로운 프로세스에 현재 CPU가 할당된 프로세스의 상태정보 저장 & 새로운 프로세스의 상태정보 저장 > CPU를 할당하여 실행되도록 하는 작업.

 

1) 기법

- 비선점(Non-Preemptive) 스케줄링 

: 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법. 공정하게 처리.

- 일괄 처리 방식

- 응답 시간 예측 용이

- 중요한 작업이 중요하지 않은 작업을 기다리는 경우 발생

- FCFS(First Come First Service), SJF(Shortest Job First), 우선순위, HRN(Highest Response-ratio Next), 기한부 등의 알고리즘

 

- 선점(Preemptive) 스케줄링

: 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법

- 빠른 응답 시간 요구하는 대화식 시분할 시스템에 사용

- 많은 오버헤드 초래

- 선점이 가능하도록 일정 시간 배당에 대한 인터럽트용 타이머 클록이 필요

- RR(Round Robin), SRT(Shortest Remaining Time), 선점 우선순위, 다단계 큐(Multi-level Queue), 다단계 피드백 큐 등의 알고리즘.

 

158. 주요 스케줄링 알고리즘

1) FCFS(First Come First Service) 선입선출 (FIFO)

: 준비상태 큐에 도착한 순서에 따라 차례로 CPU를 할당.

 

2) SJF(Shortest Job First) 단기 작업 우선

: 준비상태 큐에서 기다리고 있는 프로세스들 중 실행 시간이 가장 짧은 프로세스에게 먼저 CPU 할당.

- 가장 적은 평균 대기 시간 제공

 

3) HRN (Highest Response-ratio Next)

: 실행 시간이 긴 프로세스에 불리한 SJF 기법을 보완하기 위한 것으로 대기시간과 서비스(실행)시간을 이용.

- 우선순위 계산 공식을 이용하여 서비스 시간이 짧은 프로세스나 대기 시간이 긴 프로세스에게 우선순위를 주어 CPU를 할당. 

- 우선순위 계산식 : (대기시간 + 서비스시간) / 서비스 시간 

- 숫자가 높을수록 우선순위가 먼저이다. 

 

159. 환경 변수(Environment Variable)

: 시스템 소프트웨어의 동작에 영향을 미치는 동적인 값들의 모임. 

- 변수명과 값으로 구성됨.

- 시스템의 기본 정보 저장

- 자식 프로세스에 상속됨.

- 시스템 환경 변수와 사용자 환경 변수로 구분

 

1) Windows 주요 환경 변수

- 변수명 앞뒤에 %를 입력해야함

- set을 입력하면 모든 환경 변수와 값을 출력

%ALLUSERPROFILE% 모든 사용자의 프로필이 저장된 폴더
%APPDATA% 설치된 프로그램의 필요 데이터가 저장된 폴더
%ComSpec% 기본 명령 프롬프트로 사용할 프로그램명
%HOMEDRIVE% 로그인한 계정의 정보가 저장된 드라이브
%HOMEPATH% 로그인한 계정의 기본 폴더
%LOGONSERVER% 로그인한 계정이 접속한 서버명
%PATH% 실행 파일을 찾는 경로
%PATHEXT% cmd에서 실행할 수 있는 파일의 확장자 목록
%PROGRAMFILES% 기본 프로그램의 설치 폴더
%SYSTEMDRIVE% Windows가 부팅된 드라이브
%SYSTEMROOT% 부팅된 운영체제가 들어있는 폴더
%TEMP% 또는 %TMP%  임시파일이 저장되는 폴더
%USERDOMAIN% 로그인한 시스템의 도메인명
%USERNAME% 로그인한 계정 이름
%USERPROFILE% 로그인한 유저의 프로필이 저장된 프로필

 

2) UNIX/LINUX 주요 환경 변수 

- 변수명 앞에 $ 입력

- set, env, printenv, setenv 중 하나 입력하면 모든 환경 변수와 값을 표시

$DISPLAY 현재 X 윈도 디스플레이 위치
$HOME  사용자의 홈 디렉터리
$LANG 프로그램 사용 시 기본적으로 지원되는 언어
$MAIL 메일을 보관하는 경로
$PATH 실행 파일을 찾는 경로
$PS1 쉘 프롬프트 정보
$PWD 현재 작업하는 디렉터리
$TERM 로긴 터미널 타입
$USER 사용자의 이름

 

160. 운영체제 기본 명령어

- CLI : 키보드로 명령어 입력하여 작업 수행

- GUI : 마우스로 아이콘이나 메뉴를 선택하여 작업 수행

 

1) Windows 기본 명령어

DIR 파일 목록을 표시
COPY 파일을 복사한다
TYPE 파일의 내용 표시
REN 파일의 이름 변경
DEL 파일을 삭제
MD 디렉터리를 생성
CD  디렉터리의 위치 변경
CLS 화면의 내용을 지운다
ATTRIB 파일의 속성을 변경
FIND 파일을 찾는다
CHKDSK 디스크 상태를 점검
FORMAT 디스크 표면을 트랙과 섹터로 나누어 초기화
MOVE 파일을 이동

2) UNIX/LINUX 기본 명령어

cat 파일 내용을 화면에 표시
chdir 현재 사용할 디렉터리의 위치 변경
chmod 파일의 보호모드를 설정하여 파일의 사용 허가를 지정
chown 소유자를 변경
cp 파일을 복사
exec 새로운 프로세스 수행
find 파일을 찾는다
fork 새로운 프로세스를 생성 (하위 프로세스 호출, 프로세스 복제 명령)
fsck 파일 시스템을 검사하고 보수
getpid 자신의 프로세스 아이디를 얻는다
getppid 부모 프로세스 아이디를 얻는다
ls 현재 디렉터리 내의 파일 목록을 확인
mount/unmount 파일 시스템을 마운팅한다/ 마운팅 해제한다 (기존 파일 시스템에 새로운 파일 시스템을 서브 디렉터리에 연결)
rm 파일을 삭제한다
uname 시스템의 이름과 버전, 네트워크 호스트명 등의 시스템 정보를 표시
wait fork후 exec에 의해 실행되는 프로세스의 상위 프로세스가 하위 프로세스 종료 등의 event를 기다린다.

 

161. 인터넷 

: TCP/IP 프로토콜을 기반으로 전 세계 수많은 컴퓨터와 네트워크들이 연결된 광범위한 컴퓨터 통신망.

 

1) IP 주소

: 숫자로 8비트씩 4부분

  • A Class : 국가나 대형 통신망에 사용 (0~127)
  • B Class : 중대형 통신망에 사용 (128~191)
  • C Class : 소규모 통신망에 사용 (192~223) 
  • D Class : 멀티캐스트 용으로 사용 (224~239)
  • E Class : 실험적 주소. 공용되지 않음.

 

2) 서브네팅 (Subnetting) 

: 할당된 네트워크 주소를 다시 여러 개의 작은 네트워크로 나누어 사용하는 것. 

- 서브넷 마스크 : 4바이트의 IP 주소 중 네트워크 주소와 호스트 주소를 구분하기 위한 비트. 

 

3) IPv6(Internet Protocol version 6)

: 현재 사용하고 있는 IP 주소 체계인 IPv4의 주소 부족 문제를 해결하기 위해 개발됨. 

- 128비트의 긴 주소

- IPv4보다 자료 전송 속도가 빠름

- 인증성, 기밀성, 데이터 무결성의 지원으로 보안 문제 해결 가능

 

- 16비트씩 8부분, 총 128비트로 구성.

- 각 부분을 16진수로 표현/ 콜론(:)으로 구분.

  • 유니캐스트 : 단일 송신/수신자 간의 통신
  • 멀티캐스트: 단일 송신자와 다중 수신자 간의 통신
  • 애니캐스트 : 단일 송신자와 가장 가까이 있는 단일 수신자 간의 통신

 

4) 도메인 네임 

: 숫자로 된 IP 주소를 사라밍 이해하기 쉬운 문자형태로 표현한 것. 

- 호스트 컴퓨터 이름 (www.) + 소속기관 이름 (tistory.) + 소속기관의 종류 (co.) + 소속국가명 (kr)

- DNS (Domain Name System) : 문자로된 도메인 네임을 컴퓨터가 이해할 수 있는 IP 주소로 변환하는 역할을 하는 시스템.

 

162. OSI(Open System Interconnection 참조 모델

: 물데네전세표응

1) 물리 계층 : 전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의 (리피터, 허브)

2) 데이터 링크 계층 : 두 개의 인접한 개방 시스템들 간엥 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 시스템 간 연결 설정과 유지 및 종료를 담당. (랜카드, 브리지, 스위치)

3) 네트워크 계층 : 개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능. (라우터)

4) 전송 계층 : 논리적 안정과 균일한 데이터 전송 서비스를 제공함으로써 종단 시스템 간에 투명한 데이터 전송을 가능하게 한다.  (게이트웨이)

5) 세션 계층 : 송,수신 간의 관련성을 유지하고 대화 제어를 담당. 송수신 측 간의 대화 동기를 위해 전송하는 정보의 일정한 부분에 체크점(도기점)을 두어 정보의 수신 상태를 체크. 

6) 표현 계층  : 응용 계층으로부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태로 변환 & 세션 계층에서 받은 데이터는 응용계층에 맞게 변환하는 기능. 

7) 응용 계층 : 사용자가 OSI 환경에 접근할 수 있도록 서비스 제공.

 

- PDU(프로토콜 데이터 단위) : 동일 계층 간에 교환되는 정보의 단위

물 : 비트

데 : 프레임

네 : 패킷

전 : 세그먼트

세, 표, 응 : 메시지

- SDU(서비스 데이터 단위) : 서비스 접근점을 통해 상하위 계층끼리 주고받는 정보의 단위.

 

163. 네트워크 관련 장비

1) 네트워크 인터페이스 카드 (NIC) = 이더넷카드(LAN 카드), 네트워크 어댑터

: 컴퓨터와 컴퓨터 또는 컴퓨터와 네트워크를 연결하는 장치

 

2) 허브

: 한 사무실이나 가까운 거리의 컴퓨터들을 연결하는 장치. 

- 더미 허브

- 스위칭 허브

 

3) 리피터(Repeater)

: 전송되는 신호가 전송 선로의 특성 및 외부 충격 등의 요인으로 인해 원래의 형태와 다르게 왜곡되거나 약해질 경우 원래의 신호 형태로 재생하여 다시 전송하는 역할을 수행.

 

4) 브리지(Bridge)

: LAN과 LAN을 연결하거나 LAN 안에서의 컴퓨터 그룹(세그먼트)을 연결하는 기능 수행. 

 

5) 스위치(Switch)

: LAN과 LAN을 연결하여 훨씬 더 큰 LAN을 만드는 장치. (데이터 링크 계층에서 사용됨.)

 

6) 라우터(Router)

: LAN과 LAN의 연결 기능에 데이터 전송의 최적 경로를 선택할 수 있는 기능이 추가됨. 서로 다른 LAN이나 LAN과 WAN의 연결도 수행. 

 

7) 게이트웨이(Gateway) : 전 계층의 프로토콜 구조가 다른 네트워크의 연결을 수행. 

 

164. 프로토콜의 개념

: 서로 다른 기기들 간의 데이터 교환을 원활하게 수행할 수 있도록 표준화 시켜 놓은 통신 귱약. 

 

1) 기본 요소

- 구문 (Syntax) : 전송하고자 하는 데이터의 형식, 부호화, 신호 레벨 등

- 의미(Semantics) : 두 기기 간의 효율적이고 정확한 정보 전송을 위한 협조 사항과 오류 관리를 위한 제어 정보를 규정

- 시간 (Timing) : 두 기기간의 통신 속도, 메시지의 순서 제어 등

 

2) 기능

- 단편화와 재결합

- 캡슐화

- 흐름 제어

- 오류 제어

- 동기화

- 순서 제어

- 주소 지정

- 다중화

- 경로 제어

- 전송 서비스

 

165. TCP/IP(Transmission Control Protocol/Internet Protocol)

: 인터넷에 연결된 서로 다른 기종의 컴퓨터들이 데이터를 주고받을 수 있도록 하는 표준 프로토콜. 

 

1) TCP : OSI의 전송 계층에 속함. 스트림 전송 기능 제공. 

- TCP 헤더 : Source/Destination Port Number, Sequence Number, Acknowledgment Number, Checksum 등

2) IP : OSI의 네트워크 계층에 속함. 패킷의 분해/조립, 주소 지정, 경로 선택 기능 제공. 

- IP 헤더 : Version, Header Length, Total Packet Length, Header Checksum, Source IP Address, Destination IP Address 등

 

OSI TCP/IP 기능 주요 프로토콜
응용 계층
표현 계층
세션 계층
응용 계층 - 응용 프로그램 간의 데이터 송수신 제공
- TELNET, FTP, SMTP, SNMP, DNS, HTTP
- FTP(File Transfer Protocol) : 컴퓨터와 컴퓨터 또는 인터넷과 컴퓨터 사이에서 파일을 주고받을 수 있도록 하는 원격 파일 전송 프로토콜
- SMTP(Simple Mail Transfer Protocol) : 전자 우편을 전송하는 프로토콜
- TELNET : 멀리 떨어져 있는 컴퓨터에 접속하여 자신의 컴퓨터처럼 사용할 수 있도록 해주는 서비스
- SNMP(Simple NetworkManagement Protocol) : TCP/IP의 네트워크 관리 프로토콜
- DNS : 도메인 네임을 IP주소로 매핑
- HTTP : 월드와이드웹에서 HTML 문서를 송수신하기 위한 표준 프로토콜
- MQTT(Message Queuing Telemetry Transport) : 발행-구독 기반의 메시징 프로토콜로 IoT 환경에서 자주 사용.
전송 계층 전송 계층 - 호스트들 간의 신뢰성 있는 통신 제공
- TCP, UDP
- TCP : 양방향 연결형 서비스 제공. (순서 제어, 오류 제어, 흐름 제어 기능) 신뢰성 있는 경로 확립
- UDP(User Datagram Protocol) : 데이터 전송 전에 연결을 설정하지 않는 비연결성 서비스 제공. 실시간 전송에 유리. 고속. 정기적 반복 전송시
- RTCP(Real-Time Control Protocol) : RTP패킷의 전송 품질을 제어하기 위한 제어 프로토콜. 
네트워크 계층 인터넷 계층 - 데이터 전송을 위한 주소 지정, 경로 설정을 제공
- IP, ICMP, IGMP, ARP, RARP
- IP : 전송할 데이터에 주소를 지정하고 경로를 설정하는 기능
- ICMP(Internet Control Message Protocol) : IP와 조합하여 통신중에 발생하는 오류의 처리와 전송 경로 변경 등을 위한 제어 메시지를 관리하는 역할
- IGMP (Internet Group Management Protocol) : 멀티캐스트를 지원하는 호스트와 라우터 사이에서 멀티캐스트 그룹 유지를 위해 사용.
- ARP (Address Resolution Protocol) : 호스트의 IP 주소를 호스트와 연결된 네트워크 접속 장치의 물리적 주소(MAC Address)로 바꾼다.
- RARP(Reverse Address Resolution Protocol) : ARP와 반대로 물리적 주소를 IP주소로 변환하는 기능.
데이터 링크 계층
물리 계층
네트워크 액세스 계층 - 실제 데이터(프레임)을 송,수신하는 역할
- Ethernet, IEEE 802, HDLC, X.25, RS-232C, ARQ
- Ethernet(IEEE 802.3) : CSMA/CD 방식의 LAN
- IEEE 802 : LAN을 위한 표준 프로토콜
- HDLC : 비트 위주의 데이터 링크 프로토콜
- X.25 : 패킷 교환망을 통한 DTE와 DCE 간의 인터페이스를 제공하는 프로토콜
- RS-232C : 공중 전화 교환망을 통한 DTE와 DCE 간의 인터페이스 제공하는 프로토콜.
728x90

BELATED ARTICLES

more