Free Lines Arrow
본문 바로가기
728x90

전체 글380

[OS] Deadlock(교착상태), Starvation(기아상태) Deadlock(교착상태), Starvation(기아상태) 교착상태와 기아상태를 알아봅니다. 해결방법을 알아봅니다. Dead Lock(교착상태) 둘이상의 프로세스가 각각의 프로세스가 점유 하고 있는 자원을 서로 기다릴때 무한대기에 빠지는 상황이다. 아래 그림을 보면 다음과 같다. Process1 이 Resource1 을 점유하고 있다. Process2 가 Resource2 를 점유하고 있다. 여기까지는 괜찮다. Process1 이 Resource2의 자원을 사용하기 위해 기다린다. Process2 가 Resource1의 자원을 사용하기 위해 기다린다. 이렇게 자원 해제가 안되어있고 무한정 기다리고 있는 상태이다. Dead Lock 발생조건 아래 4개의 조건을 만족해야 Dead Lock이 발생한다. 상호배.. 2021. 8. 18.
[OS] Process Synchronization(프로세스 동기화) Process Synchronization(프로세스 동기화) 앞서 멀티 쓰레드와 멀티프로세스를 공부하였습니다. 그럼 멀티쓰레드와 멀티프로세스에서 동기화란 무엇인지 살펴 보겠습니다. 프로세스 동기화 란? 프로세스 사이에서 실행 순서를 지켜 자원의 일관성을 보장하는 것이다. 여러개의 프로세스가 동시적으로 자원에 접근하면 공유 자원을 신뢰 할 수 없다. 공유자원: 공동으로 쓸수 있는 자원을 말한다. Race Condition: 여러 프로세스가 동시에 공유 자원에 접근하여 읽거나 쓰는 상황 Critical Section: 여러 프로세스가 동시에 접근 해서 안되는 공유자원 일부를 말한다. public synchronized void test(){ // 전체가 임계구역이 된다. } public synchronize.. 2021. 8. 18.
[OS] Synchronous(동기), Asynchronous(비동기) OS 에서의 Synchronous, Asynchronous 을 알아보자 Synchronous(동기) 동시 발생[존재]하는 뜻이다. 요청을 했을 경우 결과를 받을때 까지 기다린다. A작업과 B작업이 있을 경우 트랜잭션을 맞춘다는 의미다. 함수가 끝나는 시간과 다음에 수행할 함수의 시간이 같다. 장점 설계가 단순하다. 단점 결과가 올때까지 다른 작업을 할 수 없다. 예제 양복점에서 상의와 하의를 맞춘다고 한다. 상의를 공장에 주문하고 상의를 받을 때까지 기다린다. 상의를 받고나서 하의를 주문한다. 상의를 맞추는데 3일이 걸리고 하의를 맞추는데 1일이 걸린다고 하자. 그럼 상의를 맞추는데 3일 하의를 맞추는데 1일 총 4일이 걸린다. Asynchronous(비동기) 동시에 존재[발생]하지 않는 요청을 했을경우.. 2021. 8. 18.
[OS] 프로세스와 쓰레드 그리고 차이점 프로세스 프로그램의 실행 단위를 말한다. 프로그램의 인스턴스 라고 해도 된다. 프로세스의 구조 Code: 코드 및 상수가 기계어로 저장되는 영역이다. Data: 전역변수, Static 변수가 저장 되는 영역이다. Stack: 지역변수, 매개변수, 리턴값, 함수호출을 기록하는 영역이다. Heap: 동적메모리 할당 공간이다. 장점 메모리 침범문제를 OS 에서 해결한다. 하나의 프로세스가 이상이 생겨도 다른 프로세스에 영향이 없다. 단점 독립된 메모리 공간을 가지기 떄문에 작업량이 많을 경우 오버헤드가 발생한다. IPC 복잡한 통신이 필요하다. Context Switching 위 프로세스의 구조를 보면 2개의 프로세스가 있다. CPU 는 한번에 하나의 명령밖에 실행 못한다. 이런 이유때문에 빠르게 Proces.. 2021. 8. 18.
728x90
반응형