본문 바로가기
반응형

전공/운영체제48

Ch06. 교착 상태_01)교착 상태의 개요 교재를 참고하였습니다. 교착 상태의 정의 교착 상태(dead lock) 2개 이상의 프로세스가 다른 프로세스의 작업이 끝나기만 기다리며 작업을 더 이상 진행하지 못하는 상태 시스템 내에 임계구역이 존재하면 프로세스 간 상호배제를 보장해야 함 운영체제가 상호배제를 보장하기 위해 잠금을 사용하다 보면 작업이 더 이상 진행되지 않는 교착상태에 빠짐 교착상태란 무엇인가? 이를 해결하는 방법에 대해 학습 아사 상태와 차이점 아사 현상 : 운영체제가 잘못된 정책을 사용하여 특정 프로세스의 작업이 지연되는 문제 교착 상태 : 여러 프로세스가 작업을 진행하다 자연 발생적으로 일어나는 문제 운영체제는 감시를 하다가 교착상태를 감지하면 강제적으로 해결해야 함 교착 상태의 발생 시스템에서 교착상태는 시스템 자원, 공유변수(.. 2023. 4. 19.
[심화]Ch05. 프로세스 동기화_04)파일, 파이프, 소켓 프로그래밍 교재를 참고하였습니다. 파일 순차 파일 아무리 큰 파일이라도 파일 내의 데이터는 개념적으로 한 줄로 저장됨 파일 기술자 open() 함수로 파일을 열면 파일 기술자 fd를 얻음 파일 기술자는 파일 접근 권한 외에 현재 파일의 어느 위치를 읽고 있는지에 대한 정보도 보관 처음 파일이 열리면 파일 기술자는 맨 앞에 위치 파일에서 파일 기술자는 단 하나이고, 읽기를 하든 쓰기를 하든 파일 기술자는 계속 전진 파일을 이용한 통신 read( )와 write( ) 함수가 파일 기술자를 공유하며 통신 파이프 파이프를 이용한 통신 파이프는 파일 기술자를 fd[2]와 같이 2개의 원소를 가진 배열로 정의 배열에서 원소 하나는 읽기용이고 하나는 쓰기용으로 사용 네트워킹 소켓을 이용한 네트워킹 클라이언트 쪽의 통신 절차 처.. 2023. 4. 19.
Ch05. 프로세스 동기화_03)임계구역 해결 방법 교재를 참고하였습니다. 임계구역 (critical section) 해결 방법 critical section 문제를 해결하는 단순한 방법은 Lock을 사용하는 것임 즉, 한 프로세스가 critical section에 들어간다면 lock을 걸어 놓아 다른 프로세스가 들어오지 못하게 하는 것임 그리고 프로세스가 critical section에서 빠져나오게 되면 lock을 해제하고 동시에 동기화 신호를 보내는 것임 동기화 신호는 다음 프로세스에게 critical section을 사용해도 좋다는 신호를 주는 것임 임계구역 문제를 해결하기 위한 3가지 조건인 상호배제, 한정대기, 진행의 융통성을 모두 만족하는 lock, unlock, 동기화 구현 방법을 학습함 기본 코드 소개 임계 구역 해결 방법을 설명하기 위한 .. 2023. 4. 19.
Ch05. 프로세스 동기화_02)공유 자원과 임계구역 교재를 참고하였습니다. 공유 자원과 임계구역 : 여러 프로세스가 한정된 자원을 가지고 프로세스가 공동으로 작업할 때 발생할 수 있는 문제가 있음 공유 자원의 접근 공유 자원 (shared resource) 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 등을 말함 공동으로 이용되기 때문에 누가 언제 데이터를 읽거나 쓰느냐에 따라 그 결과가 달라질 수 있음 이 때문에 원치 않는 문제 발생하기도 함 경쟁 조건 2개 이상의 프로세스가 공유 자원을 병행적으로 읽거나 쓰는 상황 경쟁 조건이 발생하면 공유 자원 접근 순서에 따라 실행 결과가 달라질 수 있음 공유 자원의 접근 예 [그림 5-10]은 두 프로세스가 공유 자원인 전역 변수를 이용해 작업을 하는 예시임. 프로세스 P1은 예금 10만원 확인 후 10.. 2023. 4. 18.
Ch05. 프로세스 동기화_01) 프로세스 간 통신 교재를 참고하였습니다. 프로세스 동기화 프로세스 동기화 독립적인 프로세스간 작업을 하다 서로 데이터를 주고받아야 할 때 통신을 사용함 프로세스간 통신을 하는 경우 누가 먼저 작업할지, 작업이 언제 끝날지 등을 서로 알려주어야 하는데 이를 동기화 라고 함 프로세스 간 통신의 개념 프로세스 간 통신의 종류 전역변수나 파일을 사용하여 통신하는 것은 OS 도움없이 진행되는 통신방식이며, 파이프, 소켓, 원격 프로시져 호출 (Remote procedure call)은 OS가 제공하는 통신방식임 프로세스 내부 데이터 통신 하나의 프로세스 내에 2개 이상의 스레드가 존재하는 경우의 통신 프로세스 내부의 스레드는 전역 변수나 파일을 이용하여 데이터를 주고 받음 프로세스 간 데이터 통신 같은 컴퓨터에 있는 여러 프로세스.. 2023. 4. 18.
[심화]Ch04. CPU 스케줄링 _05)인터럽트 처리 교재를 참고하였습니다. 인터럽트의 개념 폴링 입출력을 요청하면 운영체제가 주기적으로 입출력장치를 직접 확인해서 처리하는 방식 인터럽트 이벤트 드리븐 방식과 마찬가지로 입출력을 요청하고 입출력이 완료되면 이벤트를 발생시켜 알림 동기적 인터럽트와 비동기적 인터럽트 동기적 인터럽트 프로세스가 실행 중인 명령어로 인해 발생 동기적 인터럽트의 종류 프로그램상의 문제 때문에 발생하는 인터럽트(예: 다른 사용자의 메모리 영역에 접근하는 경우, 오버플로나 언더플로에 의해 발생하는 경우 등) 컴퓨터 작업자가 의도적으로 프로세스를 중단하기 위해 발생시킨 인터럽트(예: [Ctrl]+[C]) 입출력장치 같은 주변장치의 조작에 의한 인터럽트 산술 연산 중 발생하는 인터럽트(예: 어떤 수를 0으로 나눔) 비동기적 인터럽트 하드디.. 2023. 4. 4.
반응형