4과목 프로그래밍 언어 활용 응용 SW 기초 기술 활용 157 ~ 165
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 | 프로그램 사용 시 기본적으로 지원되는 언어 |
메일을 보관하는 경로 | |
$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 간의 인터페이스 제공하는 프로토콜. |
'Programming > 정처기' 카테고리의 다른 글
5과목 정보시스템 구축 관리 소프트웨어 개발 방법론 활용 166 ~ 176 (2) | 2024.02.14 |
---|---|
4과목 프로그래밍 언어 활용 응용 SW 기초 기술 활용 149 ~ 156 (1) | 2024.02.11 |
4과목 프로그래밍 언어 활용 프로그래밍 언어 활용 140 ~ 148 (0) | 2024.02.06 |
4과목 프로그래밍 언어 활용 프로그래밍 언어 활용 132 ~ 139 (0) | 2024.02.05 |
4과목 프로그래밍 언어 활용 서버 프로그램 구현 127 ~ 131 (1) | 2024.02.05 |