IPv6
128비트의 주소 공간을 제공함
인증 및 보안 기능을 포함
IPv6 확장 헤더를 통해 네트워크 기능 확장이 용이함
패킷의 크기는 임의로 큰 크기의 패팃을 주고받을 수 있다.
인증성 , 기밀성 데이터 무결성 지원으로 보안 문제 해결
확장성 융통성 연동성이 뛰어나며 실시간 흐름 제어로 향상된 멀티미디어 기능 지원 , 16비트씩 8부분 총 128 bit 로 구성
자동으로 네트워크 환경구성이 가능하다
유니캐스트 , 멀티캐스트 , 애니캐스트 세가지 주소체계 ( 유멀애 )
IPv4
패킷 크기가 64bite로 제한 되어 있다
유니캐스트 , 멀티캐스트 , 블로드 캐스트 세가지 주소체계 ( 유멀브 )
연산자 우선순위
우선순위 높음 --------------------------------------------------------> 우선순위 낮음
증감 연산자( ++ -- ) → 산술 연산자( * / % ) → 산술 연산자( + - )
→ 시프트 연산자( << >> ) → 관계 연산자(=< => < > ) → 관계 연산자( == != )
→ 비트 연산자( & ^ | ) → 논리 연산자( && ||) → 조건연산자(?:) →
대입연산자(= += *= /= %= <<= >>=) → 순서 연산자( , )
C언어에서 비트 논리 연산 : & , ^ , | , ~ 가 있다.
? 는 조건 연산자
시프트 연산자 >> , <<
& (AND)
, ^ (XOR)
, ? 조건문
, ~ (NOT)
C언어에서 정수 자료형
int : 정수
char : 문자
float / double : 실수
C언어 산술연산자
산술 연산자는 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/) 그리고 나머지(%)
> 산술 연산자
> 논리연산자
> 비트연산자
10진수 > 2진수 변환방법
37의 10
문자열을 정수로 반환
>atoi(),strtoumax(),strol()
1. atoi() : char to int : 문자를 정수로
2. atof() : char to double : 문자를 부동 소수점으로
3. itoa() : int to char : 정수를 문자로
4. ceil() : 소수점값이 나올 때 무조건 올림
TCP/IP 프로토콜 중 전송 계층 프로토콜은 ?
> TCP
IP프로토콜
- Header Length는 IP 프로토콜의 헤더 길이를 32비트 워드 단위로 표시함
- Time To Live는 송신 호스트가 패킷을 전송하기 전 네트워크에서 생존할 수 있는 시간을 지정한 것
- Version Number는 IP 프로토콜의 버전번호를 나타냄
- Total Packet Length (16 bits): IP 헤더 및 데이터를 포함한 IP 패킷 전체 길이를 바이트 단위로 길이를 표시. (최대값은 65,535 = 2^16 - 1)
- 패킷을 분할 , 병합하는 기능을 수행하기도 한다.
- 비연결형 서비스를 제공한다
- Best Effort 원칙에 따른 전송 기능을 제공한다
- 데이터 체크섬은 제공하지 않고 , 헤더 체크섬만 제공한다
운영체제의 종류
> 윈도즈 , 리눅스/유닉스 / 맥 / 안드로이드
- 다중 사용자와 다중 응용프로그램 환경하에서 자원의 현재 상태를 파악하고 자원 분배를 위한 스케줄링을 담당한다.
- CPU, 메모리공간, 기억장치 ,입출력 장치 등 자원을 관리한다
- 입출력 장치와 사용자 프로그램을 제어한다.
매크로 프로세서 : 시스템 소프트웨어
어셈블러 : 기계어와 프로그래밍 언어의 중간정도 언어
컴파일러 : 특정 언어를 타 언어로 옮기는 프로그램
OSI 7 계층이란?
OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다.
물리 > 데이터 > 네트워크 > 전송 > 세션 > 표현 > 응용
TCP/IP 프로토콜에서 TCP가 해당하는 계층
> 트랜스포트 계층 (전송계층)
IP계층은 네트워크 계층
OSI 7 계층의 목적
흐름을 한눈에 알아보기 쉽고, 사람들이 이해하기 쉽고,
7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있기 때문이다.
1계층 - 물리계층(Physical Layer)
- 7계층 중 최하위 계층.
- 주로 전기적, 기계적, 기능적인 특성을 이용해 데이터를 전송.
- 데이터는 0과 1의 비트열, 즉 On, Off의 전기적 신호 상태로 이루어져 해당 계층은 단지 데이터를 전달.
- 단지 데이터 전달의 역할을 할 뿐이라 알고리즘, 오류제어 기능이 없음
- 장비로는 케이블, 리피터, 허브가 있음
- 전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적 , 전기적 기능적 절차 특성에 대한 규칙
2계층 - 데이터 링크계층(DataLink Layer)
- 물리적인 연결을 통하여 인접한 두 장치 간의 신뢰성 있는 정보 전송을 담당(Point-To-Point 전송)
- 안전한 정보의 전달이라는 것은 오류나 재전송하는 기능이 존재
- MAC 주소를 통해서 통신
- 데이터 링크 계층에서 데이터 단위는 프레임(Frame)
- 장비로는 브리지, 스위치가 있음
- 에러검출/재전송/흐름제어
- 두개의 인접한 개방 시스템들 간 신뢰성 있고 효율적인 정보 전송
- 한노드에서 다른 노드로 프레임을 전송하는 책임을 갖는 층 (Layer)은 데이터 링크 계층이다.
3계층 - 네트워크 계층(Network Layer)
- 중계 노드를 통하여 전송하는 경우 어떻게 중계할 것인가를 규정
- 개방 시스템들 간의 네트워크 연결을 관리 및 데이터 교환 및 중계
- 라우팅 기능을 맡고 있는 계층으로 목적지까지 가장 안전하고 빠르게 데이터를 보내는 기능을 가지고 있음(최적의 경로를 설정가능)
- 컴퓨터에게 데이터를 전송할지 주소를 갖고 있어서 통신가능(=우리가 자주 듣는 IP 주소가 바로 네트워크 계층 헤더에 속함)
- 네트워크 계층에서 데이터 단위는 패킷(Packet)
- 장비로는 라우터, L3 스위치가 있음
4계층 - 전송 계층(Transport Layer)
- 종단 간 신뢰성 있고 정확한 데이터 전송을 담당
- 송신자와 수신자 간의 신뢰성있고 효율적인 데이터를 전송하기 위하여 오류검출 및 복구, 흐름제어와 중복검사 등을 수행
- 논리적 안정 및 균일한 데이터 전송 서비스를 제공함으로서 종단 시스템간 투명한 데이터 전송이 가능하다
- 데이터 전송을 위해서 Port 번호를 사용함.(대표적인 프로토콜로 TCP와 UDP가 있음)
- 전송 계층에서 데이터 단위는 세그먼트(Segment)
- 패킷 생성(Assembly/Sequencing/Deassembly/Error detection/Request repeat/Flow control) 및 전송
TCP 프로토콜(Transmission Control Protocol)
IP가 데이터의 배달을 처리한다면 TCP는 *패킷을 추적 및 관리하게 됩니다.
TCP는 연결형 서비스를 지원하는 프로토콜로 인터넷 환경에서 기본으로 사용
양종단 호스트 내 프로세스 상호 간에 신뢰적인 연결지향성 서비스를 제공
- 신뢰성이 있는 연결 지향형 전달 서비스이다
- 기본 헤더 크기는 최소 20byte ~ 최대 60byte 이며 헤더에 option값 포함 시 최대 40byte 추가 가능하다.
- 스트림 전송 기능을 제공한다.
- 순서제어 ,오류제어 , 흐름제어 기능을 제공한다.
- IP의 비신뢰적인 최선형 서비스에다가 신뢰적인 연결지향성 서비스를 제공하게 됨
- 신뢰적인 전송을 보장함으로써, 어플리케이션 구현이 한층 쉬워지게 됨
- 전송 데이터와 응답 데이터를 함께 전송할 수 있다.
- 전이 중(Full Duplex) 방식의 양방향 가상회선을 제공한다.
-흐름 제어(Flow Control)의 기능을 수행한다.
- 패킷의 전송 및 오류를 제어함
UDP(User Datagram Protocol)
- 비연결형 서비스로 데이터그램 방식을 제공한다
- 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 않는다.
- UDP헤더의 CheckSum 필드를 통해 최소한의 오류만 검출한다.
- 신뢰성이 낮다
- TCP보다 속도가 빠르다
- 비연결형 및 비신뢰성 전송 서비스를 제공함
- 흐름제어나 순서 제어가 없어 전송속도가 빠르다
- 수신된 데이터의 순서 재조정 기능을 지원하지 않는다
- 복구 기능을 제공하지 않는다.
[ UDP 서버의 특징 ]
- UDP에는 연결 자체가 없어서(connect 함수 불필요) 서버 소켓과 클라이언트 소켓의 구분이 없다.
- 소켓 대신 IP를 기반으로 데이터를 전송한다.
- 서버와 클라이언트는 1대1, 1대N, N대M 등으로 연결될 수 있다.
- 데이터그램(메세지) 단위로 전송되며 그 크기는 65535바이트로, 크기가 초과하면 잘라서 보낸다.
- 흐름제어(flow control)가 없어서 패킷이 제대로 전송되었는지, 오류가 없는지 확인할 수 없다.
- 파일 전송과 같은 신뢰성이 필요한 서비스보다 성능이 중요시 되는 경우에 사용된다.
5계층 -세션 계층(Session Layer)
- 통신 장치 간 상호작용 및 동기화를 제공
- 송 수신 측 간의 관련성을 유지하고 대화 제어를 담당한다.
- 연결 세션에서 데이터 교환과 에러 발생 시의 복구를 관리
- 통신을 하기 위한 세션을 확립/유지/중단 (운영체제가 해줌)
- TCP/IP 세션을 만들고 없애는 책임
6계층 - 표현 계층(Presentation Layer)
- 데이터를 어떻게 표현할지 정하는 역할을 하는 계층
- 응용계층으로부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태로 변환 , 세션 계층에서 받은 데이터는 응용계층에 맞게 변환하는 기능
- 데이터로 작동하는 계층 , 주요 기능은 '데이터변환 , 암호화 및 압축' 기본적으로 사용하는 응용계층과 상호 작용하여 데이터를 표현 계층으로 보낸다.
- 표현 계층은 세가지의 기능을 갖고 있습니다.
- 송신자에서 온 데이터를 해석하기 위한 응용계층 데이터 부호화, 변화
- 수신자에서 데이터의 압축을 풀수 있는 방식으로 된 데이터 압축
- 데이터의 암호화와 복호화
(MIME 인코딩이나 암호화 등의 동작이 표현계층에서 이루어짐. EBCDIC로 인코딩된 파일을 ASCII 로 인코딩된 파일로 바꿔주는 것이 한가지 예임)
7계층 - 응용 계층(Application Layer)
- 사용자와 가장 밀접한 계층으로 인터페이스 역할
- 응용 프로세스 간의 정보 교환을 담당
- 사용자가 OSI에 접근 할 수 있도록 서비스 제공
- ex) 전자메일, 인터넷, 동영상 플레이어 등
- 최종 목적지로서 HTTP, FTP, SMTP, POP3, IMAP, Telnet 등과 같은 프로토콜이 있다.
- 네트워크 소프트웨어 UI 부분, 사용자의 입출력(I/O)부분
- 최종 사용자가 실제로 상호작용하는 계층 , 네트워크 리소스에 대한 액세스 허용
HTTP / FTP(File Transfer Protocol) / SMTP(Simple Mail Transfer Protocol)
> OSI 7 계층인 응용 계층에서 동작
은행가 알고리즘 교착상태의 해결 방법
> Avoidance (회피)
Detection(탐지) : 교착상태 발생을 허용하고 발생시 원인을 규명하여 해결 ( 자원 할당 그래프 )
Avoidance (회피) : 교착상태 가능성을 배제하지 않고 적절하게 피해나가는 방법
Recovery(복구) : 교착상태 발견 후 현황대기를 배제시키거나 자원을 중단하는 메모리 할당기법( 자원 선점 / 프로세스 종료)
Prevention(예방) : 교착상태의 필요조건을 부정함으로써 교착상태가 발생하지 않도록 미리 예방하는 방법
교착상태의 원인이 되는 조건 중 하나를 제거
-상호배제
-점유와 대기
-비선점
-환형대기
UNIX SHELL
<환경 변수를 출력하는 명령어>
printenv : 환경 변수의 값을 출력하는 명령어
env :환경 변수 보기 및 변경
setenv : 환경 변수 추가 또는 업데이트
( configenv : 파이썬에서 사용 , json 등)
Java 프로그래밍 언어의 정수 데이터 타입 중 'long'의 크기
byte = 1byte
short = 2byte
int = 4byte
long = 8byte
쉘(shell)
시스템과 사용자간의 인터페이스 담당 , 명령어 해석기
사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기이다 .
주 기억 장치에 상주하지 않고 , 명령어가 포함된 파일 형태로 존재하며 , 보조 기억 장치에서 교체 처리가 가능하다.
공용 Shell이나 사용자 자신이 만든 shell을 사용할 수 있다.
반복적인 명령 프로그램을 만드는 프로그래밍 기능을 제공함
초기화 파일을 이용해 사용자 환경을 설정하는 기능을 제공함
시스템과 사용자 간의 인터페이스를 담당한다.
여러 종류의 쉘이 있다.
커널(Kernel)
: 프로세스 생성 , 종료 / 기억장치 할당 , 회수 / 파일 시스템 관리
Unix 의 가장 핵심적인 부분 , 컴퓨터 부팅시 주기억 장치에 적재된 후 상주하며 실행된다.
하드웨어를 보호하고 프로그램과 하드웨어 간의 인터페이스 역할을 한다.
프로세스(CPU 스케줄링)관리, 기억장치 관리 , 파일관리 ,입출력관리 , 통신, 데이터 전송 및 변환 등
여러가지 기능 수행
who 명령어는 현재 시스템에 로그인한 유저의 목록을 보여준다.
I (파이프)는 앞의 who 명령어의 출력 결과를 뒤 grep 명령어로 전달한다.
grep 명령어는 who 명령문의 결과 중 wow 유저가 로그인하면 그 결과를 필터링하여 출력한 뒤
sleep 명령문 뒤 숫자만큼 잠시 수행을 대기한다.
TCP/IP 네트워크에서 IP주소를 MAC 주소로 변환하는 프로토콜
> ARP
UDP (User Datagram Protocol) : TCP/IP의 전송 계층 프로토콜
-비연결형 서비스 제공/ 실시간 전송 네트웨크에서 사용
- 단순한 헤더구조로 오버헤드 적음
- 사용하는 경우 : 빠른 속도로 전송 요구시 , 동시에 여러 사용자에게 데이터 전달시 , 반복적 전송
-실시간 전송에 유리 , 신뢰성보다 속도가 중요시 되는 네트워크에 사용
-송신 중에 링크 유지 관리로 신뢰성이 높다는 내용은 TCP에 관한 설명
IP : 데이터 주소를 지정하고 경로 설정
ARP : IP주소를 MAC Address로 변환 (논리주소 → 물리주소)
RARP : ARP의 반대 (물리적 주소를 IP주소로 변환)
TCP : 양방향 연결형 서비스 제공 / 가상 회선 연결 형태의 서비스 제공 / 스트릿 위주 패킷 전달 (전송패킷)
ICMP : IP와 조합하여 통신 중에 발생하는 오류처리와 전송 경로 변경 등을 위한 제어 메시지를 관리한다
메세지 관리
- IGMP :멀티캐스트를 지원하는 호스트나 라우터 사이에서 멀티캐스트 그룹 유지를 위해 사용한다.
FTP 응용계층 프로토콜
PHP에서 사용 가능한 연산자
@ : 에러 제어 연산자
<> : 관계 연산자
=== : 관계 연산자
IEEE 802.11 워킹 그룹의 무선 LAN 표준화 현황 중 QoS 강화를 위해 MAC 지원 가능을 채택한 것은?
> IEEE 802.11e
IEEE 802.11 - 워킹 그룹 무선 LAN 표준화. 2.4GHz. CSMA/CA
IEEE 802.11a - 5GHz 대역의 전파를 사용하는 규격으로, OFDM 기술을 사용해 최고 54Mbps까지의 전송 속도를 지원
IEEE 802.11b - Wi-Fi. 11의 스루풋 확장. 11mbps
IEEE 802.11d - 지역 간 로밍용 확장 기술
IEEE 802.11e - QoS. MAC구현 수정. Voice over WLAN, 스트리밍을 위한 기술.
IEEE 802.11f - 인터 엑세스 포인트 프로토콜
IEEE 802.11g - 11b의 스루풋 확장. 54mbps
IEEE 802.11h - DFS, TPC. 5GHz 타장비(레이다) 간섭 해결.
IEEE 802.11i - WPA2
IEEE 802.11j - 일본용 전송 방식
IEEE 802.11k - 전파 자원 측정 확장 기술
IEEE 802.11n - 40MHz대역"폭". g의 스루풋 확장. 600mbps.
IEEE 802.11p - 빠르게 움직이는 운송 수단을 위한 무선 접속 기술
IEEE 802.11r - 빠른 로밍
IEEE 802.11s - ESS 메쉬 네트워킹
IEEE 802.11t - 무선 성능 예측 (WPP)
IEEE 802.11u - 802.11 기반이 아닌 네트워크와의 상호 연동
IEEE 802.11v - 무선 네트워크 관리
IEEE 802.11w - 보호된 관리 프레임
C언어에서 사용 할 수 없는 변수명
예약어는 변수명으로 불가능 , 첫글자는 영어 , 변수이름 중간 공백 , 대소문자 구분 , - 는 특수기호이기 때문에 사용 불가
_ , 영어 , 숫자 는 사용가능
strlen(s) - s의 길이를 구한다.
strcpy(s1, s2) - s2를 s1으로 복사한다.
strcat(s1, s2) - s1과 s2를 연결한다.
strrev(s)-s를 거꾸로 변환한다.
3) strcat 간단한 사용법
char origin[] = "BlockDMask";
char dest[20] = "aaabbb";
strcat(dest, origin); // 뒤에 이어 붙이기
결과 : "aaabbbBlockDMask";
char origin[] = "BlockDMask";
char dest[20] = "aaabbb";
strncat(dest, origin, 5); // origin에 있는 문자열 n개를 문자열 dest 뒤쪽에 이어 붙이는 함수 입니다.
결과 : "aaabbbBlock";
배열의 수가 9개이고 3개의 값만 초기화 되어있을 때
b[4] ~ b[8] 까지는 0이다
static 이라서 0으로 초기화된다. 따라서 정답 은 1번
결합도
- 모듈 외 처리요소들 사이의 기능적인 연관정도
- 결합도가 강할수록 품질은 떨어지며, 유지 보수 작업이 어렵다
- 모듈 간의 결합도를 약하게 하면 모듈 독립성이 향상된다.
응집도 약 ~ 강 **우논시절교순기
우연적(Coincidental cohesion) < 논리적(Logical cohesion) <시간적(Temporal cohesion)< 절차적(Procedural cohesion)
< 교환적(Communication cohesion) < 순차적(Sequential cohesion) < 기능적(Functional cohesion)
우연적 : 서로 관련없는 요소로만 구성
논리적 : 유사 성격이나 특정 형태로 분리되는 처리요소들로 모듈 형성
시간적 : 특정 시간에 처리되는 몇개의 기능을 모아 모듈로 구성
절차적 : 모듈이 다수의 관련 기능을 가질 때 모듈안의 구성 요소들이 그 기능을 순차적으로 수행할 경우 응집도
교환적 : 동일 입출력 사용 시 서로 다른 기능을 수행하는 구성요소가 모였을 경우
순차적 : 활동을 통해 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용하는 경우
기능적 : 모든 기능 요소가 단일 문제와 연관되어 수행될 경우
결합도 약 ~ 강 ** 내공외제스자
자료(data) < 스탬프(stamp) < 제어(control) < 외부(external) < 공통 (common) < 내용 (content)
> 내용 결합도 (content coupling)
- 하나의 모듈이 다른 모듈의 내부 동작을 수정하거나 내부 동작에 의존하는 상태
- 예) 다른 모듈의 로컬 데이터에 접근하는 경우
> 공통 결합도 (common coupling)
- 두 개의 모듈이 같은 글로벌 데이터를 공유하는 상태 (전역변수 등)
> 외부 결합도 (external coupling)
- 두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜, 또는 디바이스 인터페이스를 공유할 때 발생
- 기본적으로 외부 툴이나 디바이스와의 통신과 관련있다
> 제어 결합도 (control coupling)
- 하나의 모듈이 다른 모듈로 무엇을 해야하는지에 대한 정보를 넘겨줌으로써 다른 모듈의 흐름을 제어하는 경우
- 권리 전도 현상 발생
> 스탬프 결합도 (stamp coupling)
- 모듈들이 데이터 구조를 공유하고, 서로 다른 일부만을 사용하는 경우
- 모듈 간 자료 구조 전달될 때 변화가 생기면 그것을 조회하는 모든 모듈에 영향을 미친다.
- 두 모듈이 동일한 자료구조를 조회
- 두 모듈이 매개변수로 자료를 전달 할 때 , 자료구조 형태로 전달되어 이용될 때 데이터가 결합되어 있다고 한다.
> 자료 결합도 (data coupling)
- 모듈들이 파라미터 등을 통해 데이터를 공유하는 경우
- 각 데이터가 기본적인 것(elementary piece)이고, 그 데이터들이 공유되는 유일한 데이터여야 한다.
- 자료요소로만 구성. 처리값을 다시 돌려줌
- 어떤 모듈이 다른 모듈을 호출하면서 매개변수나 인수를 넘겨주고, 호출 받은 모듈은 받은 데이터에
- 대한 처리결과를 다시 돌려주는 방식
버퍼오버플로
:메모리를 다루는데 오류가 발생하여 잘못된 동작을 하는 프로그램 취약점 (어플리케이션 공격)
FTP 바운스 공격 : FTP 프로토콜 구조의 허점을 이용한 공격 (네트워크 공격방법)
SQL 삽입 : SQL의 논리적 에러를 이용한 공격 (웹공격)
디렉토리 접근 공격 : 웹 루트 디렉토리 외부에 저장된 파일 또는 디렉토리에 접근하는 공격방법(웹공격)
교착상태 발생의 필요충분 조건
- 상호배제 (mutual exclusion)
- 점유와 대기(hold and wait)
- 환형 대기(Circular wait)
- 비선점(non-preemption)
프로세스 상태의 종류
- 보류 (pending)
- 준비 (ready)
- 실행 (running)
- 대기 (blocked)
- 교착 (deadlock)
- 완료 (terminated)
프로세스 상태 종류
제출(Submit)
접수(Hold)
준비(Ready)
실행(Run)
대기(Wait)
보류, 블록(Block)
종료(Terminated, Exit)
스레드(Thread)
프로세스 내에서의 작업단위로 여러 자원을 할당받아 실행하는 프로그램 단위
한 개의 프로세스에는 하나 이상의 스레드가 존재
커널 스레드 : 운영체제 커널에 의해 스레드 운영/ 구현 쉬움 / 속도 느림
사용자 스레드 : 사용자가 만든 라이브러리를 사용해 스레드 운용 / 속도 빠름 / 구현 어렵
하드웨어 운용체제 성능과 처리율을 향상하는 가능
응용프로그램 응답시간 단축가능
실행 환경을 공유시켜 기억장소 낭비가 줄어듬
HRN(Highest Response-ratio Next) 스케줄링 방식
- 비선점 스케줄링
실행시간이 긴 프로세스에 불리한 SJF를 보완하기 위해 대기시간 및 서비스 시간을 이용함
우선순위를 계산하여 숫자가 높은 것 부터 낮은순으로 순위 부여
HRN 스케줄링 기법은 SJF(Shortest Job First) 스케줄링 기법의 약점인 긴 작업과 짧은 작업 사이의 불평등을 보완하기 위한 방법이다.
- 우선순위: (대기시간 + 서비스(실행)시간) / 서비스(실행)시간 = 시스템 응답시간
- 위 공식에서 시스템 응답시간이 커질수록 우선순위가 높아진다.
A의 우선순위 (5+20)/20 = 1.25
B의 우선순위 (40+20)/20 = 3
C의 우선순위 (15+45)/45 = 1.333333
D의 우선순위 (20+2)/2 = 11
우선순위가 높을수록 작업순서가 먼저 처리된다. (높을수록 빠름)
D -> B -> C -> A
스크립트 언어
Javascript
ASP
JSP
PHP
Python
basic
RIP 라우팅 프로토콜
- 경로 선택 메트릭은 홉 카운트이다.
- 라우팅 프로토콜은 IGP와 EGP로 분류했을 때 IGP이다.
- 최단 경로 탐색에 Bellman-Ford 알고리즘을 사용한다.
- 각 라우터는 이웃 라우터들로부터 수신한 정보를 이용하여 라우팅 표를 갱신한다.
- 소규모 네트워크 환경에 적합하다
- 최대 홉 카운트를 15홉 이하로 한정하고 있다.
JAVA 언어에서 접근제한자
public :모든접근허용
protected :같은 패키지에 있는 객체와 상속관계 객체들만 허용
default :같은 패키지에 있는 객체들만 허용
private : 현재 객체 내에서만 허용
배치프로그램 필수요소
: 자동화는 심각한 오류상황 외 사용자의 개입 없이 동작해야한다.
안정성은 어떤 문제가 생겼는지 , 언제 발생햇는지 등을 추적할 수 있어야한다.
대용량 데이터는 대용량의 데이터를 처리 할 수 있어야한다.
견고함 : 유효하지 않은 데이터의 경우도 처리해서 비정상적인 동작 중단이 발생하지 않아야한다.
성능 : 주어진 시간 내에 처리를 완료 할 수 있어야하고, 동시에 동작하고 있는 다른 애플리케이션을 방해하지 말아야한다.
처음~7 까지 2자리씩 띄어서시작
[0, 20, 40, 60]
파이썬 슬라이스
[:] 처음부터 끝까지
[start:] start오프셋부터 끝까지
[:end] 처음부터 end-1 오프셋까지
[start : end] start오프셋부터 end-1 오프셋까지
[start : end : step] step만큼 문자를 건너뛰면서, 위와 동일하게 추출
ㄱ에 다음값이 입력 되어야 한다 : string[0:3] + string[-3:]
UNIX 운영체제의 특징
- 주로 서버용 컴퓨터에서 사용됨
- time sharing system을 위해 설계된 대화식 운영체제
- c언어로 작성되어 이식성 높고 , 장치간 호환성이 높다.
- Multi user, Multi tasking 모두 지원한다.
UNIX 에서 새로운 프로세스를 생성하는 명령어
> fork
ls - 디렉토리나 파일목록 출력
cat - 파일 내용 출력
chmod - 파일이나 디렉토리에 대한 접근권한 변경
<메모리 관리기법 >
Worst fit ( 최악 적합 ) : 들어갈 수 있는 영역 중 자원낭비가 제일 심한 영역에 들어가는 방법
first fit ( 최초 적합 ) : 들어갈 수 있는 공간 중 가장 빠른 영역에 들어가는것
best fit (최적 적합) : 들어갈 수 있는 공간 중 가장 자원 낭비가 적은 영역에 들어가는 방법
< java 접근제한자 종류>
- public : 모든 접근을 허용
- protected : 같은 패키지(폴더)에 있는 객체와 상속관계의 객체들만 허용
- default : 같은 패키지(폴더)에 있는 객체들만 허용
- private : 현재 객체 내에서만 허용
논리주소 = (세그먼트번호, 변위값)
물리주소 = '세그먼트 시작주소 + 변위값'
논리주소(2,176)
세그먼트 : 2
변위값 : 176
세그먼트번호 2: 시작주소 : 222 + 176 =398
C언어에서 구조체를 사용하여 데이터를 처리할 때 사용하는것
> struct
scanf: 값을 입력받음
struct : 구조체
abstract : 자식 클래스가 추상 메소드를 무조건 구현하도록함
Java 출력함수
- println은 printline의 뜻으로 출력 후 다음 줄로 내려가 출력된다.
- printf는 지시자를 통해 변수의 값을 여러 가지 형식으로 출력하고자 할 때 사용한다.
ex.> System.out.printf("출력 서식", 출력할 내용);
- print는 콘솔창에 문자열을 단순 출력하는 동작을 수행한다
자바에서 while문은 조건식의 결과값이 boolean이어야한다.
y--은 int 이기때문에 오류 발생한다.
TCP 흐름제어 기법 중 프레임이 손실 되었을 때 , 손실된 프레임 1개를 전송하고 수신자의 응답을 기다리는 방식으로
한번에 프레임 1개만 전송할 수 있는 기법은 ?
> stop and wait
Slow start:
패킷이 문제없이 도착하면 혼잡 윈도우 크기를 패킷마다 1씩 증가시켜 한 주기가 지나면 혼잡 윈도우 크기가 2배로 되지만, 혼잡 현상 발생시 혼잡 윈도우 크기를 1로 줄여버리는 방식이다.
Slding WIndow:
한 번에 여러 패킷(프레임)을 전송할 수 있어 전송 효율이 좋은 기법
- 수신 측으로부터 이전에 송신한 패킷에 대한 긍정 수신 응답(ACK)이 전달된 경우 윈도우 크기는 증가하고, 수신측으로부터 이전에 송신한 패킷에 대한 부정 수신 응답(NAK)이 전달된 경우 윈도우 크기는 감소한다.
Congestion Avoidance(혼잡 방지, Congestion Control):
네트워크 내에서 패킷의 지연이 너무 높아지게 되어 트래픽이 붕괴되지 않도록 패킷의 흐름을 제어하는 트래픽 제어(종류: AMID, Slow Start
< WAS 종류 >
1. BEA사의 Web Logic
2. IBM사의 Web Spere
3. TMAX사의 Jeus
4. JBOSS (RedHat으로 인수되었음)
5. Sun microsystems사의 Sun Application Server
6. Apache project의 Tomcat
17K 가 들어갈 자리는 15K ~ 23K 사이
23K-17K = 6K
물리적 연결을 이용해 신뢰성 있는 정보를 전송 - 동기화 , 오류제어, 흐름제어 등 전송에러를 제어하는 계층
> 데이터 링크 계층
물리계층 : 실제 접속 및 절단 / 기계 , 전기, 기능 , 절차적 특성 규칙 정의
응용계층 : 전자사서함 / 파일전송
표현계층 : 데이터 변환 / 데이터 암호화 /정보형식 변환
** 제어프로그램
> 감시 프로그램 (supervisor)
:프로그램과 시스템 작동상태를 감시 감독
> 작업 제어 프로그램 (Job Control)
: 작업의 연속 처리를 위한 스케줄 및 시스템 자원 할당 등을 담당
> 데이터 관리 프로그램 (Data Management)
: 주기억 장치와 보조기억 장치 사이의 데이터 전송 , 파일과 데이터를 처리 유지 보수 기능 수행
IEEE 802의 표준 규약
IEEE 802.3 : CSMA/CD
IEEE 802.4 : Token BUS
IEEE 802.5 : Token RING
IEEE 802.8 : Fiber optic LANS
IEEE 802.9 : 음성/데이터 통합 LAN
IEEE 802.11 : 무선 LAN(CSMA/CA)
" " < String 타입으로 인식
+ 3 + 4 > 연산으로 인식 X
(3+4) > 괄호의 경우 사칙연산 수행
운영체제의 가상 기억 장치 관리에서 프로세스가 일정 시간동안 자주 참조하는 페이지의 집합을 의미하는것
> Working Set
Locality : 어느 한순간에 특정 부분을 집중적으로 참조
Thrashing : 지나치게 페이지 부재가 발생함으로 인하여 전체 시스템의 성능이 저하되는 현상
Deadlock : 교착상태. 두 개 이상의 작업이 서로 작업이 끝나기 만을 기다리고 있는 것
가상기억장치의 구현 기법
프로그램과 주기억 장치의 영역을 ' 동일한 크기' 로 나누는 페이징(paging)기법과
프로그램을 '다양한 크기'로 나누는 세그멘테이션(segmentation) 기법이 있다.
라이브러리
: 라이브러리란 필요할 때 찾아서 쓸 수 있도록 모듈화되어 제공되는 프로그램을 말한다.
표준 라이브러리가 기본적으로 포함되어 있는 라이브러리
프로그래밍 언어에 따라 일반적으로 도움말, 설치 파일, 샘플 코드 등을 제공한다
외부 라이브러리가 인터넷 등에 공유되어 있는 라이브러리, 다운받아 설치
라이브러리는 모듈과 패키지를 총칭하며, 모듈이 개별 파일이라면 패키지는 파일들을 모아 놓은 폴더라고 볼 수 있다.
while(true) > 무한반복
continue > 이후의 문장 건너뛰기
따라서 이 코드의 결과를 ABC 가 무한반복된다.
JVM 은 자바 가상 머신이다.
서브넷 마스크
- IP 주소에는 반드시 서브넷 마스크가 있다.
- 서브넷 마스크는 기본적으로 255와 0으로 이루어져 있다.
- 여기서 255는 네트워크 부분이며 0은 호스트 부분이 된다.
- 255로 된 부분은 무시하시고 0으로 된 부분에서 IP를 나눠쓰는 혹은 IP를 쪼개는 개념이다.
서브넷 마스크 구하기
ex)
203.241.132.82/27
슬래시 앞 빨간글짜까지 IP 가 됨
Prefix(접두어)로 (CIDR이라고도 한다.)서브넷 마스크의 bit 수를 의미한다.
27의 net mask 는 244
따라서 서브넷 마스크로 변환하면
255.255.255.244
bit mask 원리 25: 128 ~ 32:255 ( 64 , 32, 16, 8, 4, 2, 1) 단위로 ++ 해짐
메모리가 꽉 찬 이후 새로운 프로그램을 올리기 위해 기존 프로그램을 스왑 영역에 옮기는 횟수가 증가하기 때문이다. 이처럼 하드디스크의 입출력이 너무 많아져 잦은 페이지 부재로 CPU Utilization이 급격히 저하되는 현상을 스레싱이라고 한다
CSMA/CA
"충돌 방지"
무선 랜에서 데이터 전송시 , 매체가 비어있음을 확인한 뒤 충돌을 회피하기 위해 임의 시간을 기다린 후 데이터를 전송하는 방법. 네트워크에 데이터 전송이 없는 경우라도 동시 전송에 의한 충돌에 대비하여 확인 신호를 전송한다.
CSMA/CD (Carrier-sense multiple access with collision detection) : "충돌 감지" 이더넷에서 각 단말이 정송 공유 매체에 규칙있게 접근하기 위한 매체 엑세스 제어방식
Collision Domain :
"충돌 도메인" 충돌 발생을 검출 할 수 있는 브리지 간 , 혹은 다른 계층 장치 간의 이더넷 세그먼트 범위
a = 4 = 00000100
b = 7 = 00000111
= 00000111
OR 연산자는 ㄴ둘 중 하나만 1이어도 1로 나타냄 , 00000111
AND (둘다 만족) 연산자는 00000100 4가 된다.
x++ : 대입연산 후 x의 값 증가
--x : 대입연산 전 x의 값 감소
y = x++ 5 대입 후 증가 -> x = 6
z = --x 감소 후 5 대입 -> x = 5
<프로세스 적재 정책>
- 반복 , 스택 , 부프로그램은 시간 지역성 (Temporal Locality) 와 관련이 있다.
- 공간 지역성은 프로세스가 어떤 페이지를 참조했다면 이후 가상 주소 공간상 그 페이지와 인접한 페이지들을 참조할 가능성이 높음을 의미한다.
- 일반적으로 페이지 수행시간보다 교환시간이 커질 때 발생하는걸 스레싱(Thrashing 현상이라고 한다.
- 스레싱(Thrashing 현상을 방지하기 위해서는 각 프로세스가 필요로 하는 프레임을 제공할 수 있어야한다.
프레임워크(Framwork)
> 소프트웨어 구성에 필요한 기본 구조를 제공 , 재사용이 가능
Software 프레임 워크 특징
-모듈화
-재사용성
-확장성
-제어의 역흐름
C언어 프로그램이 실행되었을 때 결과
A는 10진수로 나타냈을 때 , 65
a는 10진수로 나타냈을 때 , 97
따라서 'A' + 1 = 65 + 1 = 66
C언어 라이브러리 중 stdlib.h
: C 언어의 표준 라이브러리로, 문자열 변환, 사 난수 생성, 동적 메모리 관리 등의 함수들을 포함하고 있다.
strlen() 함수 > strign.h 에 포함되어 있습니다
표준 입출력 라이브러리 > stdio.h입니다
삼각함수 , 제곱근 , 지수 등 수학적인 함수 > math.h에 내장되어있다.
파이썬
def add(sel): --> add는 sel을 참조 하고 있다.
리눅스 Bash 쉘(Shell)에서 export와 관련한 설명
변수 출력은 echo $변수명
- export가 매개변수 없이 쓰일 경우 현재 설정된 환경변수들이 출력됨
- 사용자가 생성하는 변수는 export 명령어 표시하지 않은 한 현재 쉘에 국한됨
- 변수를 export 시키면 전역(Grobal)변수처럼 되어 끝까지 기억된다.
페이징기법 : 컴퓨터가 메인 메모리에서 사용하기 위해 데이터를 저장하고 검색하는 메모리 관리기법
페이징기법을 통해 물리적 메모리는 연속적으로 할당되어 존재할 필요가 없음
페이징 기법을 통해 비연속적 메모리를 연속적 메모리처럼 만들 수 있음
페이징기법에서 페이지 크기가 작아질수록 발생하는 현상
-기억장소 이용 효율이 증가함
-입 출력 시간이 늘어남
- 내부 단편화가 감소
- 기억 장치의 효율이 좋아짐
페이지 크기가 큼
-주기억 장치 공간 절약
- 참조되는 정보와 무관한 양의 정보가 주기억 장치에 남게됨
테이블이 복잡하지 않아 관리가 용이함
Class 별 IP주소
데커의 알고리즘
> 프로세스가 두개일때 상호 배제를 보장하는 최초의 알고리즘
- flag 와 turn 변수를 사용하여 조정
램퍼드 알고리즘
> 프로세스 n개의 상호 배제 문제를 해결한 알고리즘
- 프로세스에게 고유한 번호를 부여하고 , 번호를 기준으로 우선순위를 정하여 우선순위가 높은 프로세스가 먼저 임계구역에 진입하도록 구현
피터슨 알고리즘
> 프로세스가 두개일 때 상호 배제를 보장
데커의 알고리즘과 유사하지만 상대방에게 진입 기회를 양보한다는 차이가 있고 보더 더 간단하게 구현
세마포어
> 공유된 자원의 데이터 혹은 임계영역 등에 따라 여러 process혹은 Thread가 접근하는 것을 막아줌 (동기화 대상이 하나 이상)
FIFO : first in first out > 가장먼저 들어온것 부터 먼저 나감
LRU 페이지 교체 알고리즘 ( 페이지 결함 문제 )
파이썬 조건문엔 : if / elif / else 가 있다.
Python 데이터 타입 중 시퀀스(Sequence) 데이터 타입에 해당하며 다양한 데이터 타입들을 주어진 순서에 따라 저장할 수 있으나 저장된 내용을 변경할 수 없는 것은?
> 튜플(tuple)타입 (불변형)
사용자 수준에서 지원되는 스레드가 커널에서 지원되는 스레드에 비해 가지는 장점은?
: 커널 모드로의 전환 없이 스레드 교환이 가능하므로 오버헤드가 줄어든다.
커널수준의 스레드의 장점
: 한 프로세스가 운영체제를 호출할 때 전체 프로세스가 대기할 필요가 없으므로 시스템 성능을 높일 수 있다.
동시에 여러 스레드가 커널에 접근할 수 있으므로 여러스레드가 시스템 호출을 동시에 사용할 수 이싿.
각 스레드를 개별적으로 관리할 수 있으므로 스레드의 독립적인 스케줄링이 가능하다.
'정보처리기사(필기)' 카테고리의 다른 글
3과목 : 데이터베이스 구축 (0) | 2022.06.24 |
---|---|
1과목 : 소프트웨어 설계 (1) | 2022.06.24 |
2과목 : 소프트웨어 개발 (1) | 2022.06.23 |
5과목 정리 : 정보시스템 구축 및 관리 (0) | 2022.06.22 |
GoF(Gangs of Four) 디자인 패턴 (0) | 2022.04.01 |