본문 바로가기
728x90

Lecture/OS31

프로세스 간 통신 프로세스 간 통신의 개념 하나의 프로세스에 속한 스레드끼리 데이터를 주고받는 것은 어렵지 않다. 그러나 프로세스 간 통신은 다르다. 서로 다른 프로세스는 사용하는 메모리 영역이 다르기 때문에 공유된 메모리를 통하여 통신하는 것이 쉽지 않다. 운영체제는 프로세스와 프로세스끼리 쉽게 데이터를 주고받을 수 있는 통신 방법을 제공하는데 이를 프로세스 간 통신 IPC:Inter Process Communication이라고 한다. 프로세스 간 통신의 종류 - 공유 메모리나 공유 파일을 이용한 통신 프로세스 간 통신 중 가장 원시적인 방식이다. 이 방식에서는 일정한 메모리 영역이나 파일을 공유하고 이를 통하여 데이터를 주고받는다. 데이터를 주고받는 방법을 프로세스끼리 알아서 결정해야 하기 때문에 원시적인 방식이라고 .. 2023. 10. 20.
스케줄링 알고리즘 비 선점형 알고리즘: FCFS스케줄링, SJF스케줄링, HRN스케줄링 선점형 알고리즘: 라운드 로빈 스케줄링, SRT 스케줄링, 다단계 큐 스케줄링, 다단계 피드백 큐 스케줄링 둘 다 가능: 우선순위 스케줄링 스케줄링 알고리즘의 선택 기준 - CPU사용률: 전체 시스템의 동작 시간 중 CPU가 사용된 시간을 측정하는 방법이다. - 처리량: 시스템이 정상적으로 작용한다면 일정 시간 후 작업이 끝난다. 처리량은 단위 시간당 작업을 마친 프로세스의 수로, 이 수치가 클수록 좋은 알고리즘이다. - 대기 시간: 작업을 요청하더라도 실제 작업이 이루어지기 전까지는 대기 시간이 필요하다. 대기 시간은 작업을 요청한 프로세스가 작업을 시작하기 전까지 대기하는 시간으로, 이 시간이 짧을수록 좋다. - 응답 시간: 대화형.. 2023. 10. 19.
스케줄링의 개요 레스토랑 관리자의 스케줄링 프로세스는 생성, 준비, 실행, 대기와 같은 여러 상태를 거치며 작업이 이루어진다는 것을 앞에서 살펴보았다. CPU스케줄러는 프로세스가 생성된 후 종료될 때까지 모든 상태 변화를 조정한다. CPU스케줄러의 작업을 레스토랑 관리자의 역할에 빗대어 이해해 보자 레스토랑 관리자는 예약과 관리와 좌석 관리를 한다. 손님이 많지 않을 때는 도착한 순서대로 테이블을 안내하고 주문을 받는다. 수용 인원보다 많은 손님이 몰리면 기다리는 손님에게 대기표를 주고 순서대로 자리를 배정한다. 그리고 레스토랑 관리자는 주문을 받는다. 손님이 주문한 요리와 샐러드의 드레싱 종류, 고기의 익힘 정도, 알레르기 여부등을 주문서에 적어 주방으로 보낸다. 레스토랑 관리자는 순서를 바꿀 수도 있다. 또한 관리자.. 2023. 10. 18.
스레드 스레드의 개념 스레드의 정의 예를 들어 설명하자면 안심 스테이크를 만들기 위해 준비하는 과정을 프로세스 생성 과정으로 , 레시피의 정해진 절차에 따라 요리하는 것을 스레드로 볼 수 있다. 프로세스는 요리 작업 전체와 같고, 스레드는 요리를 완성하기 위해 수행하는 각각의 조리에 해당하는 것이다. 프로세스와 스레드의 차이 개개의 프로세스와 스레드는 서로서로 미치는 영향이 다르다. 프로세스끼리는 약하게 연결되어 있는 반면 스레드끼리는 강하게 연결되어 있다. 멀티태스크 워드프로세스와 프린트 스풀러는 서로 독립적으로 작동하다가 필요할 때 출력할 데이터를 주고받는다. 서로 독립적이라는 것은 워드프로세서가 비정상적으로 종료되어도 프린터 스풀러는 정상적으로 작동한다는 의미이다. 이렇게 서로 독립적인 프로세스는 데이터를.. 2023. 10. 17.
프로세스의 연산 프로세스의 구조 프로세스는 코드 영역, 데이터 영역, 스택 영역으로 구성되어 있다. 코드 영역 code area 코드 영역은 프로그램의 본문이 기술된 곳으로 텍스트 영역 이라고도 한다. 프로그래머가 작성한 프로그램은 코드 영역에 탑재되며 탑재된 코드는 읽기 전용으로 처리된다. 자기 자신을 수정하는 프로그램은 존재하지 않기 때문이다. 데이터 영역 data area 데이터 영역은 코드가 실행되면서 사용하는 변수나 파일 등의 각종 데이터를 모아놓은 곳이다. 본문에 사용되는 데이터가 저장되어 있다. 데이터는 변하는 값이기 때문에 이곳의 내용은 기본적으로 읽기와 쓰기가 가능하다. 스택 영역 stack area 스택 영역은 운영체제가 프로세스를 실행하기 위해 부수적으로 필요한 데이터를 모아놓은 곳이다. 예를 들어 .. 2023. 10. 17.
프로세스 제어 블록과 문맥 교환 프로세스 제어 블록 프로세스 제어 블록(PCB)은 프로세스를 실행하는데 필요한 중요한 정보를 보관하는 자료구조로 TCB(task control block)라고도 한다. 모든 프로세스에는 고유의 프로세스 제어 블록이 있으며, 프로세스가 생성될 때 만들어져 프로세스 실행이 완료되면 폐기된다. 포인터: 준비 상태나 대기 상태는 큐로 운영되는데 프로세스 제어블록을 연결하여 준비 상태나 대기 상태의 큐를 구현할 때 포인터를 사용한다. 프로세스 상세: 프로세스 상태에는 생성, 준비, 실행, 대기, 보류 준비, 보류 대기 등이 있다. 이는 프로세스가 현재 어떤 상태에 있는지를 나타내며, 프로세스 제어 블록의 두 번째 블록에 저장된다. 문맥교환 문맥교환의 예시를 들자면 13번 테이블의 파스타를 하고 14번 테이블의 등.. 2023. 10. 16.
728x90