ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Android Process Hierarchy
    TIL(today i learned)/운영체제 2023. 3. 27. 23:05

    안드로이드는 제한된메모리로인해 프로세스를 종료하여 시스템자원을 회수해야하는데 이는 임의 것이아닌 중요도계층을통해 종료되어진다.

    크롬브라우저는 다중프로세스방식을사용하여 다른탭문제가 생겼을때의 허점을 보완했음,크롬은 크게 3프로세스를 구분한다,브라우저:디스크와 네트워크 입출력관리,렌더러:웹페이지를 표시하기위한 프로그램 논리를 표시한다,플러그인:플러그인이 연관된 렌더러 프로세스와 브라우저 프로세스와 통신할수있게 하는코드 포함

    렌더러 프로세스는 샌드박스 안에서 실행되는데,이는 보안의 취약점을 최소화하기위한것으로 디스크와 네트워크 입출력에대한 접근을 제한한다.

     

    프로세스간에 데이터를 공유하는것을 협력적,반대로 공유하지 않는것을 비협력적이라 고 한다.

    데이터를 공유하는이유:정보공유,계산 가속화,모듈성

    공유하기위해서ipc기법이 필요하다.

    프로세스간 통신에는 기본적으로 공유메모리,메세지전달 기법이 있다.

    메세지 전달:적은 양의 데이터 교환에 유용,공유 메모리보다 분산 시스템에서 구현하기 쉬움

    공유 메모리:시스템콜을 사용하고 메세지 전달보다 빠르다.

     

    프로세스간에 통신을 위해서는 공유메모리 영역을 구축해야한다.공유메모리 영역은 공유메모리 세그먼트를 생성하는 프로세스의 주소공간에 위치한다

    일반적으로는 운영체제는 한프로세스의 메모리에 다른프로세스가 접근하는것을 금지하고있다.

    생산자 프로세스는 정보를 생산하고 소비자프로세스는 정보를 소비한다.이둘의 문제를 해결해주는것이 바로 공유메모리의 사용이라 할수있다.이들은 버퍼를 통해 데이터를 주고받고 하는데 이버퍼는 2가지 종류가 있다.

    버퍼크기에 제한이 없는 무한버퍼 이경우에는 생성자는 항상새로운 항목을 만들수있지만 소비자는 새로운항목을 기다려야한다,유한 버퍼:버퍼의 크기가 고정되어있다고 가정한다,이경우는 버퍼가비어있으면 소비자는 반드시대기해야하며,모든버퍼가 가득차있으면 생성자는 기다려야한다.

    공유 버퍼는 두 개의 원형 배열로 구현된다.

     

    메세지 전달 방식은 동일한 주소 공간을 공유하지 않고도 프로세스들이 통신을 하고,그들의 동작을 동기화 할수있도록 허용하는 기법을 사용한다.

    메세지전달 시스템은 최소 두가지의 연산을 제공:send,recieve

    이들은 통신연결이 설정되어야하는데 이방법은 다음과 같이 구현될수있다.

    직접통신vs간접 통신

    동기식vs비동기식 통신

    자동vs명시적 버퍼링

     

    직접통신:

    send(프로세스P에 메세지전송)

    recevie:(프로세스Q로부처 메세지수신)

    • 프로세스간에 연결이 자동으로 구축됨,통신하려는 상대방의 ID만 알면됨
    • 연결은 두프로세스 사이에서만연관됨
    • 통신하는 프로세스간에는 정확히 하나의 연결만 있어야됨

    간접통신:

    메세지들은 포트와 메일박스로송신됨

    각 메일박스는 고유아이디가 존재

    프로세스들은 메일박스를 공유할때만 대화가 가능하다

    send(프로세스P에 메일박스 전송)

    recevie:(프로세스Q로부처 메일 박스수신)

    이들은 통신을위해 공유메일박스가 필요하며 연결도 각각의연결에 하나의 메일박스가 대응되면 다중 통신도 가능하다.

     

     

    동기화:

    비동기식,동기식존재

    또한 작게다음과 같이 나눠짐:

    봉쇄형 보내기:송신프로세스가 메세지가 송신되기 전까지 봉쇄한다

    비봉쇄형 보내기:보내고 작업을 재시작한다

    봉쇄형받기:받기전까지 봉쇄

    비봉쇄형받기:유효한 메세지나 null을 받음

     

    버퍼링:

    통신이 간접적이건 비간접적이건 간에 통신하는 메세지들은 임시큐에 보관됨

    무용량:큐의최대길이가0이며 송신자는 수신자가 메세지를 받기전까지 아무것도할수없음

    우한용량:유한한 큐길이를 가지며 대기없이 실행을 계속함

    무한용량:메세지들이 언제든지 큐에안에서 대기할수있다.

     

     

    'TIL(today i learned) > 운영체제' 카테고리의 다른 글

    Chapter 5: CPU Scheduling  (0) 2023.04.10
    4-1 Multithread  (0) 2023.04.03
    3.2.1 Scheduling Queues  (0) 2023.03.22
    3.1 Process Concept  (0) 2023.03.20
    용어 정리  (0) 2023.03.19
Designed by Tistory.