일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- MSA
- 완전이진트리
- python
- AVL트리
- 강화학습
- 엔티티 그래프
- SpringSecurity
- JPA
- HTTP
- 연결리스트 종류
- JVM
- spring
- 최소힙
- posix
- 연결리스트
- Kruskal
- 스케줄링
- 프로세스
- 힙트리
- 자료구조
- jpa n+1 문제
- 이분탐색이란
- 멀티프로세서
- 백준 장학금
- 최대 힙
- 점근적 표기법
- 백준장학금
- heapq
- 알고리즘
- 운영체제
- Today
- Total
목록cs/운영체제 (8)
KKanging

멀티프로세서란요즘 cpu 코어가 여러개인 멀티 코어 cpu가 많이 나온다.멀티 코어이므로 여러개의 멀티 프로세스를 ㄹㅇ 병렬적으로 실행할 수 있게되었다.작업을 병렬적으로 여러개를 할 수 있다는 건 동시에 여러작업을 여러개의 cpu로 작업을 할 수 있다는의미이다.그렇다면 응용프로그램의 여러 작업은 스케줄은 ? -> 쓰레드를 스케줄 하는것그렇다면 os 의 여러 작업 스케줄은? 프로세스를 어떻게 스케줄링하는 것이다우리는 이때까지 단 하나의 cpu에서의 스케줄링을 공부했다.그렇다면 여러개의 멀티 프로세서 구조의 스케줄링은 어떻게 해야할까?싱글 프로세스와 멀티 프로세스의 구조적인 차이싱글 프로세스의 구조cpu에는 캐시가 존재한다캐시는 지역성의 기반하여 (시간적 지역성 + 공..

비례 배분이란?공정성을 생각해서비례 배분 스케줄러가 등장하였다.Lottery Scheduling프로세스가 받아야 할 자원의 지분 표시- 전체 추첨권(ticket) 대비 자기 추첨권의 비율로 표시그리고 추첨권을 랜덤으로 뽑아서 해당 추첨권을 가지고 있는 프로세스를 실행!Ticket Mechanism추첨권 화폐- 각 사용자는 자신의 화폐 기준으로 각 작업에 추첨권 할당하고-> 시스템은 사용자 화폐를 글로벌 화폐로 반환한다.위 예시는 아마 UserA와 UserB 의 우선순위를 동일하게 봐서 그런거 같다priority inversion 이란 : 우선순위가 낮은 프로세스가 작업을 하다가 공유변수 lock을 걸었다고 가정해보자. 이 상황에서 우선순위가 낮은 프로세스가 시간이 ..

MLFQ가 해결하고자 하는 기본적인 문제는 두 가지이다.1. 짧은 작업을 먼저 실행시켜 반환 시간을 최적화하고자 한다.2. 빠른 응답 시간그리고 추가로 프로세스에 대한 정보가 없다면 어떻게 스케줄링을 할 것인가MLFQBasic Rules멀티 레밸 큐란 우선순위별로 큐를 분리한 큐의 집합을 의미한다.주요한 규칙은 다음과 같다1. 우선순위가 높은 큐가 최우선으로 실행한다!2. 우선순위가 같다면 RR 로 실행한다.그러면 생각이 들 것이다.우선순위는 무엇을 기준으로 나타내어지는가보통 IO intensive한 작업을 높은 우선순위로 ( CPU를 자주 포기하는)CPU intensive 한 작업을 낮은 우선순위로 한다( CPU를 잘 포기하지 않는)하지만 만약 우선순위의 변동이 ..

스케줄링스케줄링스케줄링은 프로세스의 Context Switching 시에 프로세스에 실행 단계를 os 에서 제어하는 것을 의미한다.스케줄링 정책의 기준과 종류 , 특정 카정이 중요 포인트 이다.Workload일련의 프로세스들이 실행하는 상황을 워크로드라 한다.스케줄링의 기준스케줄링에는 다양한 평가 기준이 있다.성능 측면의 기준 중에서 반환 시간은T ( 반환시간) = T (작업 완료시간) - T (작업이 시스템에 도착한 시간) 을 의미한다.또 다른 기준은 공정성이 있으며 공정성은 성능과 상충되는 개념이다 스케줄링 정책FIFO단순하다먼저 도착한 작업이 먼저 실행반환 시간은 = 20FIFO의 단점?매우 공정함 그러나 위와 같은 상황에 치명적인 단점이 생김먼저 도착한 작업이 많은 작업시간을 가지면 최악임SJF..

핵심 질문가상화를 위해서 os 가 하드웨어의 제어를 직접 한다면 효율이 매우 좋지 않을것하지만 제어는 os에서만 하면 되기에 쉬울 것이다.문제점 1 : 제한된 연산제한되지 않은 직접 실행프로그램이 CPU의 제어를 직접 얻는다면 성능이 좋을 것이다.하지만 여기서 문제가 생긴다프로그램은 과연 신뢰할 만한 프로그램인가?프로그램이 CPU 같은 하드웨어를 직접 제어한다는 것은 너무 위험하다그렇다고 모든 제어를 운영체제가 부담한다면 Performance 측면에서 효율이 나지 않는다.여기서 운영체제는 새로운 개념이 도입 된다.제한된 연산일단 하드웨어의 제어를 일단 프로그램에게 양도한다.하지만 특정 영역에서는 프로그램이 직접 제어 못하는 영역을 분리한다.User mode : 프로세스가 하드웨어를 제어할 수 있는 일이 ..

fork()fork() return -> 자식은 0 부모는 자식의 프로세스 번호window의 경우에는 프로그램과 이름이 같은 프로세스를 생성하지만fork(posix)는 부모와 거의 동일한 프로세스를 생성한다.부모 프로세스는 자식 프로세스의 pid를 받고자식프로세스는 0을 받게 된다.fork() 이후부터는 다른 실행 버전이 되게 된다.자기 자신의 주소 공간, 레지스터등을 복사한 새 프로세스 생성Deteministic 한 프로세스위를 실행 해보면 바로 위와 같은 실행 결과가 나온다.이는 예상하지 못하는 실행 결과가 나오므로정해진 실행결과를 유도할 필요가 있다. wait()정해지는 작업을 위해대체로 부모 프로세스는 자식 프로세스가 종료시까지 대기한다. 자식 프로세스가 정상적으로 종료프로세스 ID- WIFEXI..

CPU 가 여러 개 존재한다는 환상을 어떻게 제공하는가?CPU 가상화의 기본 원리는1. 시분할2. 지원 방안 : Policy + Mechanism 이다위 2가지 원리로 cpu 가상화를 os 가 지원한다.프로세스개념프로세스 개요프로그램 vs 프로세스프로그램 : 디스크에 존재하는 수동적인 존재프로세스 : 프로그램을 메모리에 올려서 실행시키는 단위를 프로세스라 한다.프로세스란?프로세스는 실행중인 프로그램의 영역이다.-> CPU에서 프로그램은 작업을 하고->메모리에 데이터를 점유한다(이떄 메모리는 가상의 주소공간 ,코드,Data ,Stack ,Heap)-> I/O 정보 또한 가지고 있을 것이다. (예/ stdin stdout stderr) 프로세스 생성프로그램은 보통 실행 파일 형태로 디스크에 저장되어 있다...

운영체제란무엇을 책임지고 운영하는가운영체제역할파일 시스템 관리프로그램 실행자병렬처리(프로세스의 자원 스케쥴링)자원관리프로그램을 쉽게 실행하고프로그램 간의 메모리 공유를 가능하게 하고,장치와 상호작용을 가능하게 하는 소프트웨어가os 이다가상 머신운영체제는 위의 기능을 수행하기 위해 물리적인 자원들(프로세스,메모리,또는 디스크와 같은)을 사용이 편리한 가상의 형태의 자원을 생성한다.운영체제는 그래서 가상머신이라고도 불린다.API예POSIX API - i/o- process / thread - communication운영체제에게 위 같은 기능을 제공해달라고 요청하는 것운영체제는 위 같은 기능을 편리하게 사용할 수 있도록 API를 제공한다운영체제는 응용프로그램이 사용가능한 수천개의 시스템 콜을 제공한다.자원 관..