본문 바로가기

CS12

데드락(Dead-lock) 데드락 둘 이상의 프로세스가 자원을 획득하기 위해 기다리는데, 이 lock을 잡고 있는 프로세스도 똑같이 다른 lock을 기다리면서 서로 블럭 상태에 놓이는 것을 말한다. 데드락은 다수의 프로세스가 같은 lock을 동시에 다른 명령에 의해 획득하려 할 때 발생할 수 있다. 데드락 조건 1. 상호배제: 한 자원에 대한 여러 프로세스의 동시 접근이 불가능해야 한다. 2. 점유와 대기: 자원을 가지고 있는 상태에서 다른 프로세스가 사용하고 있는 자원의 반납을 기다려야 한다. 3. 비선점: 다른 프로세스의 자원을 강제로 가져올 수 없다. 4. 환형대기: 각 프로세스가 순환적으로 다음 프로세스가 요구하는 자원을 갖고 있어야 한다. 데드락 해결 방법 1. 예방: 네 가지 조건 중 하나만을 해결한다. 2. 회피: 발.. 2021. 10. 4.
[동기, 비동기] X [블로킹, 논블로킹] 동기(Synchronous) 개념 두 개 이상의 프로세스가 실행될 때 시스템 콜의 완료를 기다리는 것을 의미한다.예를 들어 A코드와 B코드가 있을 때, A 코드가 모두 진행될 때까지 B 코드가 대기하는 것이다. 특징 데이터를 주고 받는 순서가 중요할 때 사용 한 작업에 대한 시간이 길어질 경우, 전체 응답이 지연될 수 있음 비동기(Asynchronous) 개념 두 개 이상의 프로세스가 실행될 때 시스템 콜의 완료를 기다리지 않는 것을 의미한다.예를 들어 A코드와 B코드가 있을 때, A 코드가 모두 진행될 때까지 기다리지 않고 B 코드가 실행되는 것이다. 특징 요청 순서에 상관없이 동시에 다수의 작업을 처리 가능 작업이 끝날 때 이벤트를 감지하고 결과를 받아서 추가 작업을 해주는 경우도 있기 때문에, 동기.. 2021. 10. 4.
TCP & UDP 전송 계층(Transport Layer) End Point간 신뢰성있는 데이터 전송을 담당하는 계층이다. 신뢰성: 데이터를 순차적으로, 안정적으로 전달하는 것 전송: 포트 번호에 해당하는 프로세스에 데이터를 전달하는 것 전송 계층의 중요성 만약 전송 계층이 없다면, 첫 번째로 데이터의 순차적 전송이 원활할 수 없다. 예를 들어서 송신자가 1,2,3 순서대로 데이터를 전송했는데 수신자는 송신자가 전송한 순서대로 데이터를 받지 않을 수도 있다. 두 번째로 송수신자 간의 데이터 처리 속도 차이때문에 흐름 문제가 생긴다. 예를 들어 수신자가 처리할 수 있는 데이터량을 초과한다면 데이터가 누락될 수 있다. 세 번째로 네트워크의 데이터 처리 속도에 따른 혼잡 문제가 발생할 수 있다. TCP(Transfer Cont.. 2021. 9. 29.
데이터베이스의 키(Key) 키(Key) 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 기준이 되는 속성(애트리뷰트)이다. 기본키(Primary Key) 후보키 중에서 선택한 키 한 릴레이션에서 튜플을 유일하게 식별 가능한 속성 기본키의 조건 테이블에 저장된 행을 식별할 수 있는 유일한 값이어야 한다 값의 중복이 없어야 한다(개체 무결성) Null 값을 가질 수 없다(개체 무결성) 후보키(Candidate Key) 릴레이션을 구성하는 속성들 중 튜플을 유일하게 식별할 수 있는 속성들의 부분집합 모든 릴레이션은 반드시 하나 이상의 후보키를 가져야 함 릴레이션에 있는 모든 튜플에 대해 유일성과 최소성을 만족시켜야 한다 유일성 / 최소성 유일성: 하나의 키 값으로 하나의 튜플만 식별할 수.. 2021. 9. 26.