목록CS (73)
공부기록
세마포어 운영체제와 프로그램 언어 수준에서 병행성을 위해 제공되는 기법 세마포어 모니터 메세지 전달 Dijkstra 기법의 기본적인 원리 - 세마포어 두 개 이상의 프로세스들은 간단한 형태의 신호를 이용해 협력 한 프로세스가 특정 신호를 수신할 때까지 정해진 위치에서 중지하도록 강제하는 것 신호를 보내고 받기 위해 세마포어라 불리는 특수 변수들을 사용 semSignal(s) : 세마포어 s를 통해 신호를 전송 semWait(s) : 세마포어 s를 통해 신호를 수신 특정 신호를 받으려는 프로세스에게 아직 해당 신호가 전달되지 않았다면, 전달될 때까지 프로세스의 수행은 보류됨 세마포어 정수값을 가지는 변수 세가지 연산을 통해 접근 세마포어 초기화 : 세마포어는 음이 아닌 값으로 초기화 semWait 세마포어..
병행성의 원리 시스템에서 프로세스들은 병행 처리되며, 단일 처리시스템에서는 프로세스들이 인터리빙(interleaving), 즉 여러 프로세스가 서로 번갈아 수행됨 인터리빙은 실제로 병렬처리되는 것은 아니고, 프로세스들 간의 문맥교환 비용도 발생하지만, 처리 효율과 구조적 프로그래밍에 유익함 다중처리기 시스템에서는 프로세스들의 인터리빙과 오버래핑(overlapping)도 지원 오버래핑 : 프로세스들이 여러 개의 처리기들에서 실제로 병렬 수행되는 것 인터리빙과 오버래핑의 문제점 단일 처리기 환경에서, 프로세스 간의 수행 순서는 비동기적이라는 다중프로그래밍의 기본 특성에서 다음과 같은 문제 발생 전역 자원 공유의 어려움 두 개의 프로세스가 같은 전역변수에 write하는 경우, 프로세스의 순서에 따라 프로세스의..
시스템 구조에 따른 프로세스 관리의 구분 다중 프로그래밍 (Multiprogramming) 단일 처리기 상에서 다수의 프로세스 관리 멀티 프로세싱 (Multiprocessing) 다중처리기 상에서 다수의 프로세스 관리 분산 처리 (Distributed processing) 다수의 분산된 컴퓨터 시스템들 상에서 수행되는 다수의 프로세스 관리 클러스터 시스템 병행성 프로세스 관리에서 핵심적인 주제 프로세스의 병행처리, 프로세스간 통신, 자원에 대한 공유 및 경쟁, 프로세스 활동들의 동기화, 프로세스에 대한 처리기 시간 할당 등 다양한 이슈들을 포함 병행성의 발생 상황 여러개의 응용프로그램들 여러개의 활동중인 프로세스들이 처리시간을 동적으로 공유할 수 있도록 다중 프로그래밍이 개발됨 구조화된 응용 어떤 응용 ..
단기 스케줄링 평가 기준들 사용자 중심 + 성능 중심 턴어라운드 시간 프로세스가 시스템으로 진입한 후부터 종료할 때까지 걸린 시간을 의미 실제 실행 시간 + CPU 나 다른 자원들을 사용하기 위해 대기한 시간 응답시간 시스템에 요구를 한 뒤 시스템으로부터의 첫 응답이 올 때 까지의 시간 사용자 입장에서 시스템의 반응 속도를 가늠하기 위해서는 텀어라운드 시간보다 응답 시간이 더 현실적 완료 시한 실시간 OS에서, 프로세스가 완료되어야 하는 시점에 deadline (기한)이 있다면 스케줄러는 다른 평가 척도가 희생되더라도 완료 기한을 만족시킬 수 있는 프로세스의 수를 최대화 하는 방향으로 설계되어야 한다. 사용자 중심 + 기타 예측 가능성 같은 작업이라면 항상 같은 기간, 같은 비용으로 실행되어야 한다. 실..
처리기 스케줄링의 목적 응답 시간이나 처리량, 효율성을 증대시키기 위해서 처리기가 다음에 실행할 프로세스를 선택하는 것 스케줄링 유형과 상태 전이도와의 관계 장기 스케줄링 새로운 프로세스가 생성될 때 적용 지금 막 생성된 프로세스를 "활성 프로세스 집합"에 추가할지 아닌지 결정 중기 스케줄링 스와핑 과정에서 적용 프로세스 이미지의 전체 혹은 일부를 메모리로 적재하여 실행 가능하도록 할 것인지의 여부결정 단기 스케줄링 사실상 의미 있는 스케줄링 단계 단기 스케줄링에서 다음에 실행할 프로세스를 선택 스케줄링 기법의 중요성 스케줄링 기법의 성능은 시스템 전체 성능에 큰 영향을 미침 다음번에 실행할 프로세스와 대기해야 할 프로세스를 결정하기 때문 스케줄링이 얼마나 효율적이냐 하는 문제는 바로 프로세스들이 일생동..
스케줄링 OS가 프로세스들이 요청한 자원을 공평하게 할당하는 것을 말한다. 프로세스들은 실행하면서 자신이 필요로 하는 자원을 경쟁적으로 OS에 요구한다. 처리기 입장에서의 자원 실행시간 OS는 스케줄링이라는 수단을 통해 각 프로세스들에게 실행시간을 할당 스케줄러 처리기를 사용하려고 대기중은 프로세스를 고르는 OS 프로그램 스케줄러의 목표 공정성 기아상태 방지 처리기 시간의 효율적인 사용 저비용
수행모드 User Mode 권한을 덜 가진 사용자 모드 사용자 프로그램들이 일반적으로 이 모드에서 수행됨 Kernel Mode 더 많은 권한을 가진 시스템 모드, 제어 모드 운영체제 커널과 관련 두 모드를 이용하는 이유 사용자 프로그램의 간섭으로부터 PCB와 같은 주요 운영체제 테이블을 보호하기 위함 커널 모드에서 소프트웨어는 프로세서와 명령어, 레지스터들, 메모리에 대한 완전한 제어를 가질 수 있음, 이는 안전하지 않다. 모드를 나타내는 방법? 프로세스는 Program Status Word의 한 비트를 사용하여 수행모드를 나타냄 모드의 전환 방법? 사용자가 system call 을 호출하거나 interrupt trigger에 의해서 커널 모드로 전환됨 제어가 OS 서비스에서 사용자 프로세스로 돌아오면서..
운영체제 제어 구조 운영체제 프로세스와 자원들을 관리하기 위해서 이들 각각에 대한 현재 상태를 나타내는 정보 필요 메모리 테이블 주기억장치와 가상메모리 모두의 자취(track)를 유지하기 위해 사용 주기억 장치의 일부는 OS를 위해 예약되어 있고, 나머지나 프로세스를 위한 공간이다. 프로세스들은 가상메모리, 스와핑 기법을 통해 보조기억장치내에 유지 메모리 테이블의 정보 프로세스에 할당된 주기억장치 프로세스에 할당된 보조기억장치 주기억장치와 가상메모리 블록들에 대한 보호 속성 특정 프로세스만이 특정 공유 메모리 영역에 접근할 수 있다는 속성 가상 메모리를 관리하기 위한 필요한 정보 입출력 테이블 IO장치와, 시스템 채널 관리 파일 테이블 파일 존재여부, 파일의 위치, 상태, 등 기타 속성 관리 프로세스 테..