본문 바로가기

전체 글135

뮤텍스와 세마포어란? 뮤텍스와 세마포어가 무엇인가요? 공유된 자원에 여러 프로세스, 스레드가 동시에 접근하면서 문제가 발생할 수 있다. 이를 안전하게 관리하기 위한 기법이 뮤텍스와 세마포어이다. 뮤텍스 : 칸이 하나밖에 없는 화장실. 한 번에 한 프로세스나, 스레드만 접근 가능. 다음 스레드들은 순서대로 대기. 세마포어 : 여러 개의 칸이 있는 화장실. 현재 화장실의 빈칸을 보여주는 전광판이 존재. 프로세스나 스레드는 빈칸이 있다면 접근 가능. 빈 칸이 없다면, 생길 때까지 순서대로 대기. Critical section : 여러 프로세스가 데이터를 공유하면서 실행될 때, 각 프로세스에서 공유 데이터를 액세스 하는 프로그램 코드 부분. 참조 : jwprogramming.tistory.com/13 Semaphore란? 세마포어와.. 2020. 11. 17.
교착상태란? 교착상태란 무엇이며, 교착상태가 발생하기 위해서는 어떤 조건이 있어야 하나요? 또, 교착상태의 해결법은 무엇인가요? 교착 : 어떤 상태가 굳어 조금도 진전이 없이 머물고 있다. 교착 상태(deadlock : 데드락) : 둘 이상의 프로세스들이 이미 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상. 교착 상태의 발생 조건 상호 배제 : 프로세스들이 자원을 독점하고 싶어 한다. 점유 대기 : 프로세스가 이미 할당된 자원을 가졌음에도 불구하고, 추가적인 다른 자원을 더 갖기 위해 기다린다. 비선점 : 다른 프로세스가 이미 쓰고 있는 자원은 뺏을 수 없다. 순환(환형) 대기 : 각 프로세스는 순환적으로 다음 프로세스가 써야 하는 자원을 현재 쓰고 있다. 이 4가지.. 2020. 11. 16.
프로세스와 스레드의 차이 프로그램 : 명령어들(프로그래밍 언어로 작성된 코드들)의 집합 프로세스: 컴퓨터에서 실행되고 있는 프로그램. 스레드 : 프로세스(실행되고 있는 프로그램) 내에서 실행되고 있는 여러 흐름들의 단위. 2020. 11. 16.
(Java) 다형성 : 업캐스팅, 다운캐스팅, 추상클래스, 인터페이스, 오버라이딩, 오버로딩 다형성 : 겉 껍떼기는 같은데 다양한 형태를 가질 수 있는 성질. 업캐스팅 : 부모클래스, 인터페이스형 참조변수가 자식클래스, 인터페이스가 구현된 클래스의 인스턴스를 참조할 수 있다. 이 때, 참조범위는 부모 클래스, 인터페이스형 참조변수 ⊆ 자식클래스, 인터페이스가 구현된 클래스 이기 때문에 명시적으로 형변환을 하지 않아도 자동 형 변환이 된다. 한 형의 참조변수가 다양한 형의 객체를 참조할 수 있으므로, 이는 다형성에 해당된다. 하지만, 이 참조변수를 사용해 사용할 수 있는 참조당하는 객체의 속성은 참조변수형에 해당하는 속성들이다. 다운캐스팅 : 자식 클래스형의 참조변수가 부모클래스의 인스턴스를 참조하는것은 일반적으로 불가능하다. 왜냐하면 참조변수의 참조범위가 참조당하는 객체 형의 범위보다 넓기 때문.. 2020. 9. 18.