TIL(today i learned)/운영체제
-
Chapter 5: CPU SchedulingTIL(today i learned)/운영체제 2023. 4. 10. 13:13
다중프로래밍의 목적은 CPU의 사용률을 극한으로 끌어올리는 것이다. 프로세스의 실행은 I/O대기상태와 CPU실행을 왔다갔다 한다. CPU가 유휴상태가 될때마다 운영체제는 준비 큐에 있는 프로세스하나를 선택하고 실행하여야 되는데 이는CPU스케줄러에 의해 결정된다. CPU 스케줄링 결정이 발생하는경우 1.프로세스가 running에서 wait상태로 들어갈때 2.프로세스가 running에서 ready상태로 들어갈때 3.프로세스가 wait에서 ready상태로 들어갈때 4.프로세스가 종료할때 스케줄링방법에는 선점 스케줄링방법과 비선점 스케줄링 방법이 있는데 선전형 커널에는 공유 커널데이터 구조에 액세스 할 때 경쟁 조건을 방지하기위해mutex락 과 같은 기법이 필요하다. 디스패처는 스케줄링의 기능에 포함된다. 디스..
-
4-1 MultithreadTIL(today i learned)/운영체제 2023. 4. 3. 21:15
스레드는 같은 프로세스에 속한 다른 스레드와 코드,데이터 섹션,등을 공유한다. 또한 각스레드마다 레지스터와 스택,프로그램 카운터를 가지고있다. 웹서버가 다중스레드화 되면,서버는 클라이언트의 요청을 listen하는 별도의 스레드를 생성한다. 장점: 응답성:긴 작업을 수행하더라도 프로그램의 수행이 계속되는 것을 허용함으로써,사용자에대한 응답성을 증가시킨다. 자원공유:스레드는 그들이속한 프로세스의 자원들과 메모리를 공유한다. 경제성:프로세스생성보다 비용이 적게든다. 규모 적응성:각각의 스레드가 다른처리기에서 병렬로 수행될수있다.
-
Android Process HierarchyTIL(today i learned)/운영체제 2023. 3. 27. 23:05
안드로이드는 제한된메모리로인해 프로세스를 종료하여 시스템자원을 회수해야하는데 이는 임의 것이아닌 중요도계층을통해 종료되어진다. 크롬브라우저는 다중프로세스방식을사용하여 다른탭문제가 생겼을때의 허점을 보완했음,크롬은 크게 3프로세스를 구분한다,브라우저:디스크와 네트워크 입출력관리,렌더러:웹페이지를 표시하기위한 프로그램 논리를 표시한다,플러그인:플러그인이 연관된 렌더러 프로세스와 브라우저 프로세스와 통신할수있게 하는코드 포함 렌더러 프로세스는 샌드박스 안에서 실행되는데,이는 보안의 취약점을 최소화하기위한것으로 디스크와 네트워크 입출력에대한 접근을 제한한다. 프로세스간에 데이터를 공유하는것을 협력적,반대로 공유하지 않는것을 비협력적이라 고 한다. 데이터를 공유하는이유:정보공유,계산 가속화,모듈성 공유하기위해서i..
-
3.2.1 Scheduling QueuesTIL(today i learned)/운영체제 2023. 3. 22. 23:13
Ready큐:프로세스가 준비 상태가 되어 CPU 코어에서 실행되기를 기다림 Wait큐:입출력 같은 이벤트를 대기함 CPU스케줄러:준비큐에있는 프로세스중에서 하나를 골라 CPU코어를 할당해준다 스와핑:메모리에서 프로세스 하나를 제거하여 다중프로그래밍의 정도를 감소시는것 오버헤드:어떤 처리를 하기 위해 들어가는 간접적인 처리 시간 · 메모리 등 을말함 CPU가 2개가 아닌이상 병렬처리는 불가능하다.대신 와리가리 ㅈㄴ 빠르게 하기때문에 동시에 실행된다고 느껴지는것일 뿐이다. 프로세스가 프로세스를 생성해가며 트리를 생성할수있다. 또한 프로세스들은PID라는 고유한 번호를 가지고있다. 자식프로세스와 부모프로세스는 메모리를 공유할수도 안할수도 있다.또한 자식과 부모가 동시에 실행되거나 부모가 자식이 죽을때 까지 기다..
-
3.1 Process ConceptTIL(today i learned)/운영체제 2023. 3. 20. 14:16
CPU의 활동을 을 부르는 방법 단일 처리시스템: job 시분할시스템: user programs or tasks 프로세스:실행중인 프로그램(백번은 말한거같다) 프로그램vs프로세스 프로그램:명령어 리스트를 내용으로가진 디스크에 저장된파일(수동적인 존재) 프로세스:실행할 명령어를 지정하는프로그램 카운터와 관련 자원의 집합을 가짐 (능동적인존재) 아래 그림을 보자 Text section :실행 코드 Data section :전역 변수 Heap section :프로그램중에 동적으로 할당되는 메모리 Stack section :함수를 호출할때 임시 저장소(재귀함수 가 깊어지면 안되는 이유) activation record(활성화 레코드) :함수실행시 매개변수,지역변수,복귀주소를 포함하는 활성화 레코드가 스택에 푸시..
-
2.1 Operating System ServicesTIL(today i learned)/운영체제 2023. 3. 19. 11:43
os가 사용자를 위해 제공하는 서비스들 통신:공유 메모리로 구현 혹은 메세지 전달로 이루어짐 오류 탐지:OS는 항상 모든 오류에 대해 의식하고 있어야함 자원할당 기록:프로그램의 자원할당량을 기록 보호:시스템 자원에대한 접근을 제한함 보완:외부입출력에 대해 보호및 접송을 기록 시스템콜 이란? 유저모드에서 운영체제에게 특권명령대행을 요청하는것 또한 OS로 인해 사용가능하게된 서비스 인터페이스를 제공 Shell OS와 접속하는 3가지 방법중 하나 API 프로그램에서 직접적인 시스템호출보다는 주로 높은수준의 API를 사용하여 접근,각API는 함수 현태로 구현됨(매개변수,리턴값 존재) 시스템콜 보다 프로그램 이식성이 편하고 시스템콜보다 디테일하게 프로그래밍 할수있음 RTE 시스템콜에대한 링크역할을 제공하는 시스템..