목록dev-log/cs (42)
오식랜드
공유 자원 여러 프로세스고 공동으로 이용하는 변수, 메모리, 파일 등 공동으로 쓰기 때문에 누가 언제 데이터를 읽었는지 썻는지에 따라 결과가 바뀜 경쟁 조건 공유 자원을 두고 2개 이상의 프로세스가 읽거나 쓰려고 하는 상황 누가 먼저 무엇을 했는지에 따라 결과가 바뀜 ⇒ 레이스 컨디션 발생했다고 함 예시공유자원 = 계좌의 돈 레이스 컨디션 = 누가 먼저 실행이 완료되느냐에 따라 결과 바뀜 하나의 계좌에서 한명은 출금을, 한명은 입금을 하는 상황 임계 구역 레이스 컨디션이 발생하게 하는 프로그램 영역 (count++, count—) 프로세스 동시 작업 하면 안됨 하나의 프로레스 작업이 끝나야 다른 프로세스가 임계구역에 접근할 수 있음 생산자-소비자 문제 : in, out이 동시에 일어나는 문제 임계구역 해..
종류 공유 메모리 또는 공유 파일을 이용한 통신 단방향 통신 + 비동기화 통신 프로세스A에서 파일 작성 → 프로세스B에서 파일 읽음 데이터를 주고 받는 방법은 프로세사끼리 알아서 결정 → 프로그래머거 작성한 코드대로 통신 파이프를 이용한 통신 단방향 통신 + 동기화 통신 양방향으로 통신하려면 파이프 2개 필요 운영체제가 제공하는 통신 기법 → 안정적임 fork()로 만들어진 부모-자식 프로세스 간 통신에 파이프 사용 종류 이름 없는 파이프 : 일반적 파이프 이름 있는 파이프 : FIFO라는 파일을 이용해서 서로 관련 없는 프로세스 간 통신에 사용 소켓을 이용한 통신 양방향 통신 + 동기화 통신 네트워크로 연결된 컴퓨터끼리 데이터 주고받기 (여러 컴퓨터의 프로세스끼리 사용) 많은 자원이 소비돼서 같은 컴퓨..
CPU의 명령이 완료되었음을 확인하는데에는 2가지 방법이 있다 폴링 : 입출력을 요청하면 운영체제가 주기적으로 입출력 장치를 직접 확인한다 인터럽트 : 이벤트에 의해 동작한다. 입출력이 완료되면 이벤트를 발생하여 CPU에 알린다. 인터럽트 종류 동기적 인터럽트 프로그램상의 문제로 발생하는 인터럽트 (오버플로우나 언더플로우) 프로세스 중단을 위해 의도적으로 발생시킨 경우 (Ctrl+C) 주변장치 조작에 의한 인터럽트 산술 연산 중 발생하는 인터럽트 (0으로 나누기 등) 비동기적 인터럽트 하드디스크 읽기 오류, 메모리 불량과 같이 하드웨어적 오류 사용자가 사용하는 주변장치 오류 예상치 못한 오류 인터럽트 처리 과정 인터럽트 발생 프로세스 일시 정지 (문맥교환) 재시작을 위해 ISR에 현재 프로세스 관련 정보..
비선점형 FCFS 스케줄링 (First Come First Serve) = FIFO SJF 스케줄링 HRN 스케줄링 선점형 라운드 로빈 스케줄링 SRT 스케줄링 다단계 큐 스케줄링 다단계 피드백 큐 스케줄링 선택 기준 CPU 사용률 이상적인 수치는 100% 최대한 많이 활용해야 좋음 처리량 단위 시간 당 작업을 마친 프로세스의 수 효율성을 중시 대기시간 프로세스 생성 후 실행 전까지의 시간 응답시간 첫 작업의 첫 출력이 나올 때 까지의 시간 (반응) 실행시간 프로세스 작업이 시작한 후 끝날때 까지 걸리는 시간 반환 시간 프로세스 실행 전 대기시간부터 종료될 떄 까지 걸리는 시간 평균 대기 시간 모든 프로세스의 대기시간의 합 나누기 프로세스의 수 스케줄링 알고리즘 비선점 방식 FCFS (Fisrt Come..
*CPU 1개로 가정 CPU 스케줄링 운영체제의 일부 여러 프로세스 상황을 고려하여 CPU에 자원을 배정 스케줄링 종류 저수준 스케줄링 FIFO : Fisrt In First Out 형식 어떤 프로세스에 CPU를 할당할지, 어떤 프로세스를 대기상태로 보낼지 결정 ready → running 중간수준 스케줄링 중지(Suspend)와 활성화(active)로 전체 시스템 중 활성화 된 프로세스 수를 조절 → 활성상태, 보류상태 일부 프로세스를 중지상태로 옮김 저수준 스케줄링이 완만히 진행되도록 하는 역할 고수준 스케줄링 시스템 전체 작업 수 조정 어떤 작업을 받아들일지 여부를 결정 장기스케줄링 이라고 함 그림 전체 스케줄링의 목적 공평성 모든 프로세스가 자원을 공평하게 배정받아야 함 특정 프로세스가 무한 대기..
프로세스 우선순위 운영체제가 부여 우선순위가 높은 프로세스가 CPU를 더 먼저, 더 오래 차지 우선 배정 입출력 / CPU 집중 프로세스 입출력 집중 프로세스 CPU작업시간보다 입출력 시간이 더 길다 CPU 집중 프로세스 CPU에 머무는 시간이 길가 → 우선배정 : 입출력 > CPU → 입출력을 하는 동안에 CPU는 다른 일을 할 수 있어서 동시 작업이 가능하기 때문! → 더 효율적임 전면 / 후면 프로세스 전면 프로세스 (Frontground Process) GUI를 사용 사용자와 상호작용 가능 (상호작용 프로세스라고도 함) 후면 프로세스 (Background Process) 사용자와 상호작용이 없는 프로세스 일괄 작업 프로세스라고도 함 → 우선배정 : 전면 > 후면 우선순위 정리 비교 대상 우선순위 ..