전체 글(23)
-
[컴퓨터 보안] DOS/DDOS 공격
DOS(Denial of Service) / DDOS(Distributed Denial of Service) 공격 0. DOS 서버의 성능을 크게 떨어뜨리거나 서버를 정지시키는 방법을 통해 서버의 정상적인 작동을 방해하는 공격 Resource 고갈형 시스템이 가지고 있는 자원을 고갈시켜 정상적인 작동을 하지 못하도록 하는 공격 ex) SYN flooding 공격 기존 TCP 프로토콜에서의 통신 시작 과정은 3-way Handshaking 단계를 거쳐 연결 생성 상태가 됨 송신자가 연결을 맺자고 요청하는 SYN 패킷을 보냄 수신자가 송신자 요청을 승인하는 SYN+ACK 패킷을 보냄 송신자가 요청 승인을 확인하는 SYN 패킷을 보냄 하지만 SYN flooding 공격에서는 3번째 단계가 이루어지지 않음. 계..
2021.06.14 -
[OS] CPU 스케줄링
FCFS - 비선점 CPU를 먼저 요청하는 프로세스가 CPU를 먼저 할당받음 convoy effect 발생할 수 있음 모든 다른 프로세스들이 하나의 긴 프로세스가 CPU를 양도하기 기다리는 것 SJF (Shortest Job First) - 비선점 가장 작은 CPU burst 시간을 가진 프로세스에게 우선적으로 CPU를 할당함 비선점이므로 가장 먼저 도착한 p1이 일단 실행하고, 그 다음 burst time이 작은 p3 순으로 실행함 SRTF (Shortest Remaining Time First) - 선점형 먼저 온 프로세스가 CPU를 할당받고 있더라고 남은 처리 시간이 뒤에 온 프로세스의 처리 시간보다 길면 CPU를 빼앗김 RR (Round Robin) - 선점형 프로..
2021.06.14 -
[OS] Monitor (모니터) / synchronized 이용 은행 계좌 문제
모니터 현재 동기화 문제를 해결하는 도구 중 하나 모니터의 경우, 두 개의 queue가 존재하여 각각의 역할을 함 배타 동기 하나의 스레드만 공유 자원에 접근할 수 있게 하는 작용 특정 스레드가 공유 자원을 사용하는 함수를 사용하고 있으면, 다른 쓰레드는 접근할 수 없고 대기해야 함 조건 동기 진입 스레드가 블록되면서 새 쓰레드가 진입 가능하게 하는 공간임 새 스레드는 조건 동기로 블록된 스레드를 깨울 수 있음 깨워진 스레드는 현재 스레드가 나가면 재진입할 수 있음 Monitor vs Semaphore Semaphore 임계구역 앞에 설치되어 있는 초기값을 통해 들어갈 수 있는 한계 설정 -> S 들어갈 때 acquire() / 나올 때 release 명령을 실행해 주어야 함 monitor 함수에 syn..
2021.06.13 -
[OS] Semaphore, Ordering, Mutex (은행 계좌 자바 예제)
0. Semaphore 여러 개의 프로세스가 공유 자원에 동시 접근할 때 문제 발생 프로세스 A, 프로세스 B는 int a = 100 이라는 자원을 공유하여, 각각 a를 1씩 증가시키는 작업을 시킴 이때, 한번에 둘 이상의 프로세스가 접근하여 데이터를 동시에 변경하며 결과값에 영향을 줄 수 있음 경쟁 상태= Race condition 공유된 자원 속 하나의 데이터는 한번에 프로세스만 접근할 수 있도록 제한을 두어야 할 때 고안된 것이 Semaphore (쎄마포어) Semaphore는 P연산과 V연산으로 이루어져 있음 P(S) : S를 1 감소 (S--) V(S) : S를 1 증가 (S++) 프로세스는 S가 1 이상일 때만 임계영역으로 진입할 수 있다고 가정 / S가 0이면 진입하지 못함 * Semapho..
2021.06.13 -
[OS] 프로세스 동기화 (Process Synchronization))
0. 프로세스 동기화 협력하는 프로세스 사이에서 실행 순서 규칙을 정하여 공유 자원의 일관성을 보장하는 것 경쟁 조건(Race condition)이 발생하지 않게, 프로세스들이 공유 자원을 사용할 때 특별한 규칙을 만드는 것 1. 경쟁 조건(Race condition) 여러 프로세스(스레드)가 공유 자원에 동시에 접근할 때, 공유 자원에 대한 접근 순서에 따라 실행 결과가 달라질 수 있는 상황 경쟁 상태를 방지하기 위해 병행 프로세스를 동기화해야 하며, 임계 영역(Critical section)을 이용한 상호배제를 통해 해결할 수 있음 2. 임계 영역(Critical section) 여러 프로세스가 자원을 공유하는 상황에서 하나의 프로세스만 접근할 수 있도록 제한해 둔 코드 영역 2-1 임계 영역 문제 ..
2021.06.13 -
[OS] 메모리 관리 요약
1. 메모리 관리 정책 1. 적재 정책(Fetch Policy) : 디스크에서 메모리로 프로세스를 언제 가져와야 할지를 정하는 것 (반입 시기 결정) 1. 요구 적재 : 운영체제나 시스템 프로그램, 사용자 프로그램 등 참조 요청에 따라 메모리를 적재하는 방법 2. 예상 적재 : 시스템의 요청을 미리 예측하여 메모리에 적재하는 방법 2. 배치 정책(Placement Policy) : 디스크에서 메모리로 가져온 프로세스를 어느 위치에 저장할 것인지 정하는 것 3. 대치 정책(Replacement Policy) : 메모리가 충분하지 않을 때, 현재 메모리에 적재된 프로세스 중 제거할 프로세스를 결정 및 교체하는 방법 2. 메모리의 구조와 매핑 메모리의 주소 1. 논리적 주소 프로그래머가 프로그래밍에 사용하는 ..
2021.06.13