OS (4) 썸네일형 리스트형 [운영체제] 프로세스 - 사용자 수준의 스레드와 커널 수준의 스레드의 차이? 커널 레벨 쓰레드란 커널 수준에서 생성되고 동작하는 쓰레드로 커널이 직접 관리한다. 프로그래머 요청에따라 쓰레드를 생성하고 스케줄링 하는 주체가 커널이면 커널 쓰레드라고 한다. 커널 레벨 쓰레드 특징 커널이 각 쓰레드를 개별적으로 관리 하기 때문에 I/O 인터럽트에 의해 하나의 쓰레드가 Block 됐을때 다른 쓰레드로 작업이 가능하다. 안정적이고 다양한 기능을 제공한다. 사용자 모드와 커널 모드의 전환이 빈번해서 성능저하가 발생한다. 스케줄링과 동기화를 위해 커널을 호출하는데 오래걸린다. 사용자 레벨 쓰레드란 쓰레드를 관리하는 라이브러리로 인해 사용자 수준에서 생성 및 관리되는 쓰레드이다. 즉, 커널에 의존적이지 않은 형태로 쓰레드의 기능을 제공하는 라이브러리를 활용한 쓰레드를 말한다. 사용자 레벨 쓰레.. [운영체제] 프로세스 - 프로세스 혹은 스레드 동기화란? 1. 프로세스/스레드 동기화 동기화란 어느 공유자원에 대해 프로세스/스레드가 동시에 그 자원에 접근해서 작업하는것을 제어하는것을 말한다. 즉, 데이터의 일관성을 위해 프로세스/스레드 동기화가 필요하다. 동기화가 필요한 이유에 대해 아래에서 알아보자. 2. 동기화가 필요한 이유(경쟁 상태) 경쟁 상태는 상호배제를 하지 않았을때 일어나는 현상을 말한다. 동기화에서 "자원에 접근해서 작업 하는것을 제어하는것" 은 "프로세스/스레드의 상호배제를 고려한다." 고 볼수 있다. 이말은 프로세스/스레드 동기화가 없으면 경쟁 상태가 일어나게 되고 접근 순서에 따라 데이터의 결과 값이 달라지기 때문에 결국엔 데이터의 일관성이 깨지게 된다. 그렇다면 경쟁상태가 일어나지 않게 하기 위해선 어떻게 해야할까? (참고 - 경쟁상태.. [운영체제] 프로세스 - 컨텍스트 스위칭이란? Context Switching이란? CPU가 어떤 프로세스를 실행하고 있는 상태에서 인터럽트 요청에 의해 다음 우선순위의 프로세스를 실행해야 할때 현재까지 실행하고 있던 프로세스의 작업 정보를 PCB에 저장하고 CPU가 다음 우선순위의 프로세스를 실행 할수 있도록 프로세스를 교체하는 작업을 의미한다. 즉, 프로세스들을 우선순위에 의해 대기상태, 실행상태를 계속 바꿔주는 작업이다. Context란? CPU가 해당 프로세스를 실행하기 위한 프로세스에 대한 정보들이다. 즉, Context Switching시 PCB에 저장되는 정보들이 Context라고 할 수 있다. PCB 저장 정보 포인터 : 프로세스의 현재 위치를 저장하는 포인터 정보 프로세스 상태 : 각 프로세스의 상태(생성, 준비, 실행, 대기 , 종.. [운영체제] 프로세스 - 교착상태와 해결방안 교착상태란 교착상태는 실행 중인 두 개 이상의 프로세스가 있을 때 서로가 필요한 자원을 점유해놓고 줄 때까지 작업을 멈추고 무한 대기하는 현상을 말한다. 쉽게 말해서 A와 B라는 친구가 있을때 A는 해외 음식을 만들기 위해서 물과 설탕이라는 자원이 필요한데 물만 갖고 있기 때문에 설탕을 얻어야 하는 상황이다. 그리고 B도 마찬가지로 국내음식을 만드는데 물과 설탕이 필요하고 B는 설탕만 갖고 있기 때문에 물을 얻어야 하는 상황이다. 이때, A와 B가 서로 물과 설탕을 점유하고 있는 상태에서 상대방이 먼저 남은 자원을 줄 때까지 음식을 만들지 않고 기다리고 있다고 생각하면 된다. 교착상태가 발생하기 위한 조건 교착상태는 아래 4가지 조건을 만족해야 발생 가능성이 있고, 하나라도 만족하지 않는다면 발생하지 않.. 이전 1 다음