CS
-
[OS] Interrupt 인터럽트란?CS 2021. 8. 15. 23:45
인터럽트란? CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치에 예외상황이 발생하여 처리가 필요할 경우에 CPU에게 알려 처리할 수 있도록 하는 것 우선적으로 처리해야할 일이 발생하였을 때 그것을 처리하고 원래 동작으로 돌아옴 크게 하드웨어 인터럽트와 소프트웨어 인터럽트로 나눔 하드웨어 인터럽트 일반적으로 인터럽트를 이르는 말 CPU외부로부터의 인터럽트 요구 신호에 의해 발생되는 인터럽트 Maskable interrupt, Non-maskable interrupt 가 있다. (Interrunpt Mask가 가능) Maskable interrupt - Interrupt Mask(인터럽트가 발생하였을 때 요구를 받아들일지 말지 지정하는 것)가 가능 - 인텔CPU 에서 INTR pin으로 신호..
-
[DB] SQL - JOIN문, JOIN 종류 (Inner Join,Natural Join,Outer Join,Cross Join)CS 2021. 8. 9. 04:33
1. Join이란? 두 개 이상의 테이블을 서로 연결하여 데이터를 검색할 때 사용하는 방법 두 개의 테이블을 마치 하나의 테이블인 것처럼 보여준다. 2. 기본 구조 1) 일반 SELECT 테이블.컬럼, 테이블.컬럼 FROM 테이블1,테이블2 WHERE 조건 3. Join 의 종류 Inner Join Natural Join Outer Join Left Join Right Join Cross Join ① 내부 조인 (Inner Join) 1) SELECT 조회할 컬럼 FROM 테이블1, 테이블2 [WHERE 조건문] 2) SELECT 조회할 컬럼 FROM 테이블1 (INNER) JOIN 테이블2 ON 테이블1.컬럼 = 테이블2.컬럼 [WHERE 추가조건] 기준 테이블과 조인 테이블 모두에 조인 컬럼 데이터가..
-
[Network] TCP/IP 흐름제어 & 혼잡제어CS 2021. 7. 26. 06:29
>>TCP란? ☑️ 흐름 제어? 혼잡 제어? : 혼잡 상황이 발생하면 네트워크 자원이 낭비되므로 혼잡 상황을 최소화 하기 위한 기법 흐름 제어: 송신측과 수신측의 데이터 처리 속도 차이를 해결하기 위한 기법. 송신측의 데이터 전송량 제어 혼잡 제어: 송신측의 데이터 전달과 네트워크 상의 데이터 처리 속도 차이를 해결하기 위한 기법. 송신측의 데이터 전송 속도 제어 ✅ 흐름 제어 Flow control 1. Stop and wait 방식 매번 전송한 패킷에 대해 확인 응답을 받아야만 그 다음 패킷을 전송하는 방법 (비효율적) 2. Sliding window 슬라이딩 윈도우 기법 수신 측에서 설정한 윈도우 크기만큼은 송신 측에서 확인 응답ACK를 받기 전에 전송 가능. 송신 버퍼의 범위는 수신 측의 여유 버..
-
[OS] 페이지 교체 알고리즘 - FIFO/LRU/LFU/MFU/NURCS 2021. 7. 18. 05:19
💡 페이지 교체 알고리즘 운영체제는 주기억장치보다 더 큰 용량의 프로그램을 실행하기 위해 프로그램의 일부만 주기억장치에 적재하여 사용한다. 이를 가상메모리 기법이라 한다. 페이징 기법으로 메모리를 관리하는 운영체제에서 필요한 페이지가 주기억장치에 적재되지 않았을 시(페이지 부재) 어떤 페이지 프레임을 선택하여 교체할 것인지 결정하는 방법을 페이지 교체 알고리즘이라고 한다. * 프레임: 물리 메모리를 일정한 크기로 나눈 블록 * 페이지: 가상 메모리를 일정한 크기로 나눈 블록 ✅ 페이지 교체 알고리즘의 종류 OPT - Optimal : 앞으로 가장 오랫동안 사용되지 않을 페이지 교체 FIFO - First In First Out LRU - Least Recently Used : 가장 오랫동안 사용되지 않은..
-
[DB] SQL 인젝션 (SQL Injection )CS 2021. 7. 10. 20:09
✔️SQL 인젝션(SQL Injection)이란? 보안상의 취약점을 의도적으로 이용하여 악의적 SQL문을 실행되게 함으로써 데이터베이스를 비정상적으로 조작하는 코드 인젝션 공격 방법중 하나. *코드 인젝션의 종류에는 SQL 인젝션, HTML 스크립트 삽입, evaluation 취약점, 객체 삽입, 원격 파일 삽입, 셸 삽입 등이 있다. 1. Error Based SQL Injection 논리적 에러를 이용한 인젝션 방법 가장 많이 쓰이고, 대중적 공격 방법 보통 로그인을 할때 아래와 같은 쿼리문으로 인증한다. SELECT * FROM Users WHERE id = 'aaa' AND password = 'qwer1234@' 이때 id에 admin, 패스워드에 password' OR 1=1 --를 입력하면 ..
-
[NETWORK] TCP와 UDPCS 2021. 7. 2. 03:53
💡 TCP, UDP가 뭘까? 네트워크 계층들 중 전송계층(Transprot Layer)에서 데이터를 보내기 위해 사용하는 프로토콜 🔸TCP(Transmission Control Protocol) 일반적으로 TCP와 IP를 함께 사용 신뢰성을 보장하는 연결지향형 프로토콜 3-way Handshaking 과정을 통해 연결 설정 4-way handshaking 을 통해 연결 해제 가상회선 패킷 교환 방식 패킷을 전송하기 위한 논리적 경로를 배정 흐름 제어 데이터 처리 속도 조절하여 수신자의 버퍼 오버플로우 방지 송신자가 감당 안되게 많은 데이터를 빠르게 보내 문제가 생기는 것 방지 수신자가 윈도우 크기(Window Size)통해 수신량 설정 혼잡 제어 네트워크 내 패킷 수 넘치지 않도록 방지 전이중(Full-..
-
[OS] 세그멘테이션 SegmentationCS 2021. 6. 27. 21:42
페이징 : 프로세스를 정확하게 일정한 간격(페이지)으로 잘라 메모리에 적재하는 방법 세그멘테이션 : 프로세스를 논리적 단위(세그먼트)로 잘라서 메모리에 적재하는 방법 ✔️세그멘테이션 페이징과 같이 가상 메모리를 관리하는 기법 중 하나. 세그멘테이션에서는 프로세스= 세그먼트의 집합 프로세스를 논리적 내용을 기반으로 나눠 메모리에 배치. => 각 세그먼트는 연관된 기능을 수행하는 하나의 모듈 프로그램 한 프로세스는 기본적으로 세가지 segment로 나눌 수 있음 (그 안에서 각각 더 작은 세그먼트로 나눌수도 OO) - Text(=code) segment(Read) - 프로그램의 기계어 명령이 들어있음 - Data segment(Read & write) - 초기화 된 전역변수, 정적 변수 저장 - Stack ..
-
[디자인패턴] 싱글톤 패턴 :: Singleton PatternCS 2020. 8. 9. 23:53
싱글톤 패턴 (Singleton Pattern) 정의 어플리케이션이 시작될 때 인스턴스를 단 하나만 생성하도록 하며, 생성된 인스턴스를 어디에서든지 참조할 수 있도록 한다. 즉, 인스턴스가 필요할 때 똑같은 인스턴스를 만드는 것이 아니라 기존 인스턴스를 사용 이유 고정된 메모리 영역을 얻어 메모리 낭비 방지 인스턴스가 절대적으로 한 개만 존재하는 것을 보증하고 싶을 경우 사용 단점 싱글톤 인스턴스가 너무 많은 일을 하거나 많은 데이터를 공유시킬 경우 다른 클래스의 인스턴스들 간의 결합도가 높아져 객체 지향 설계 원칙에 어긋난다. 개방-폐쇄 원칙 위배 변경에 유연하게 대처할 수 없어 수정이 어려워진다. 멀티쓰레드 환경에서 동기화 처리를 안 하면 인스턴스가 두개 생성될 수도 있음 JAVA 하나의 인스턴스 유..