본문 바로가기

CS/OS6

동기화 문제 동기화? 한정적인 시스템 자원에 여러 스레드가 동시에 접근해서 사용하면 문제가 발생할 수 있다. 이 문제를 방지하기 위해 여러 스레드에게 하나의 자원에 대한 처리 권한을 주거나 순서를 조정하는 기법이다. 스레드 동기화 실행 순서의 동기화 스레드의 실행 순서를 정의하고, 이 순서를 반드시 따르도록 하는 것. 메모리 접근에 대한 동기화 실행 순서가 중요한 것이 아니라 한 순간에 하나의 스레드만 해당 자원에 접근하도록 하는 것. 동기화 기법 1. 유저 모드의 동기화 커널의 힘을 빌리지 않는 동기화 기법 성능상 이점이 있으나, 기능상의 제한점이 존재 임계 구역 기반의 동기화 임계 구역(Critical Section) 집입을 위해 크리티컬 섹션 오브젝트를 얻는다. 열쇠를 얻은 프로세스만 임계 구역에 들어갈 수 있.. 2024. 4. 23.
인터럽트(interrupt) 인터럽트(interrupt) 프로세스 실행 도중에 예기치 않은 상황이 발생할 때 발생한 상황을 처리한 후 실행 중인 작업으로 복귀하는 것 하드웨어 장치가 CPU에게 어떤 사실을 알려주거나 CPU의 서비스를 요청해야 할 경우, CPU 내에 있는 인터럽트 라인을 세팅하여 인터럽트를 발생시킨다. 프로그램이 명령을 수행하기 위해서는 CPU를 할당받아야 함. CPU는 매번 프로그램 카운터가 가리고 있는 곳의 명령을 수행한 뒤, 다음 명령을 수행하기 직전에 인터럽트 라인 세팅되었는지를 체크한다. 이를 통해 인터럽트가 발생했으면 CPU는 현재 수행 중이던 프로세스를 멈추고 운영 체제의 인터럽트 처리 루틴으로 이동하여 인터럽트 처리를 수행한다. 인터럽트의 종류 1.하드웨어 인터럽트 일반적인 하드웨어 인터럽트 하드웨어 .. 2024. 4. 5.
운영체제 컴퓨터 하드웨어 사이에 중계 역할을 하면서 컴퓨터의 모든 자원과 프로그램 실행을 관리하고 제어하는 시스템 소프트웨어. 운영 체제가 하드웨어와 응용프로그램 사이에 중계 역할을 위해 시스템 콜, 인터럽트 2가지 인터페이스를 두고 있다. 운영체제는 자원에 대한 접근과 관리 권한을 오직 운영체제에만 두는, 독점 관리를 한다. 파일이 생성되고 삭제되는 과정에서 디스크의 빈 영역을 관리하고, 파일이 저장되는 위치를 결정하고, 디스크에 파일을 기록하거나 읽는 행위는 모두 운영체제에 의해 실행된다. 따라서 사용자와 응용 프로그램은 시스템 콜을 통해서만 커널에 접근할 수 있다. 독점 관리를 통해 사용자와 응용 프로그램으로부터 자원에 대한 손상을 마고 여러 프로그램이 자원을 공유할 수 있도록 한다. 컴퓨터 자원은 하드웨어.. 2024. 3. 29.
데드락(Dead Lock) 운영체제 속 데드락이란 시스템 자원에 대한 요구가 뒤엉킨 상태로, 둘 이상의 프로세스가 다른 프로세스가 소유하고 있는 자원을 서로 기다릴 때 무한 대기에 빠지는 상황 발생조건 상호배제 한 번에 프로세스 하나만 해당 자원을 사용할 수 있다. 다른 프로세스가 해당 자원을 사용하고 있을 때는 접근할 수 없어야 한다. 점유 대기 자원을 최소한 하나 보유하고, 다른 프로세스에 할당된 자원을 점유하기 위해 대기하는 프로세스가 존재해야 한다. 비선점 이미 소유한 자원을 강제로 빼앗을 수 없다. 자원은 해당 프로세스가 스스로 반납할 때까지 사용 가능해야 한다. 순환 대기 대기 프로세스의 집합이 순환 형태로 자원을 대기하고 있어야 한다. 데드락 방지 1. 예방 (Prevention) 상호 배제 방지 : 한 번에 여러 프.. 2024. 3. 21.