일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 언리얼엔진
- 운영체제
- DSP
- 유스케이스
- AINCAA
- 메카님
- 유니티
- MLFQ
- pdlc
- Unity #Indie Game
- RBAC
- sampling theory
- DP
- 게임 개발
- Race condition
- MAC
- Rr
- stride
- Security
- TSet
- 배경 그림
- CTF
- linear difference equation
- dirty cow
- frequency-domain spectrum analysis
- Double free
- 게임개발
- dtft
- STCF
- ret2libc
- Today
- Total
목록운영체제 (30)
다양한 기록
워크로드, FIFO, SJF, STCF입니다. 각기 다른 시간에 도착한 다른 양의 작업들입니다. *** FIFO ATT = 43 / 5 임. 0.8 아님. RR과 MLFQ 중 모든 큐의 타임 퀀텀이 1인 경우입니다. *** RR(q=1) ATT = (4 + 16 + 13 + 14 + 7) / 5 임 *** MLFQ(q=1) ATT = (4 + 18 + 12 + 13 + 3) / 5 임 MLFQ 중, 큐의 우선순위에 따라 2의 i 제곱만큼 타임 퀀텀을 할당하는 방법입니다. ** 실제로 구현된 MLFQ 스케줄러를 보면 그냥 따로 큐마다 적절하게 타임 퀀텀을 설정해두었습니다.
저번 글에서 FIFO, SJF, STCF, RR에 대해 이야기했습니다. 그런데, 반환시간이랑 응답시간을 둘 다 좋게 만드는 방법이 없을까 고민한 사람이 있었고(By F. Cormato), MLFQ로 튜링 상을 타셨습니다. 기본적인 기계학습의 개념입니다. 여러개의 레벨이 다른 큐(레디 큐)를 이용해(멀티레벨) 과거를 기반으로(피드백) 스케줄링합니다. 스케줄링의 규칙이 있습니다. 1. 우선순위가 높은 잡부터 실행 2. 우선순위가 동일하면 라운드 로빈 3. 새로 들어오는 작업은 가장 높은 우선순위를 가지는 큐에 넣음 4a. 어떤 큐에서 스케줄링되고 타임 퀀텀이 끝나면 우선순위가 감소 4b. 스케줄링 되었는데 자기 시간을 다 못썼으면(IO등에 의한 블록 상태) 꺠어났을 때 원래 있던 큐로 이 규칙을 기반으로, ..
제한된 자원(CPU)를 어떻게 프로세스들에게 나누어 줄 것이냐의 이야기 * 단어 : 워크로드 작업의 양 컴퓨터 과학에서는 작업의 양+ 특성 * 단어: 매트릭스 평가 기준. 스케줄링의 경우.. 1. 반환시간(Turnaround Time) : 종료시간 - 도착시간 2. 응답시간(Response Time) : 첫 실행시간 - 도착시간 3. 공평성(Fairness) 4. 처리율(Throughput) 5. Deadline 여기서 반환시간과 응답시간을 중점으로 보게 될 것입니다. * 데드라인이 필요할 정도의 환경이면 애초에 스케줄링을 안 돌리고 프로세스 하나만 쭉 돌리는 게 나을 것입니다. 1. FIFO 프로세스 A, B, C가 동시에 도착하고, 같은 크기의 작업을 가지고 있을 경우 위 이미지의 1번 경우에서는 평..
직접 수행 (Direct Execution) 어떤 프로그램을 수행시키고 OS가 더 간섭을 안하는 상태를 의미합니다. 가장 빠른 건 이 방법인데, 문제가 있습니다. 타임쉐어링이 안되니까 -> 계속 그 프로세스 하나만 실행될 것 프로세스 하나가 독점해버리는 문제가 발생합니다. 그래서 이에 대한 해결책이 제한된 직접 수행 (Limited Direct Execution) 사용하는 방법이 두가지 있습니다. 1. 제한된 명령어. Restrict Operation 일반적인 명령어들은 직접 수행을 하게 해 줍니다. 대신 몇몇 명령어들은 실행해달라고 부탁해야 합니다. OS, 즉 커널은 이에 대해 부탁을 받고 실행을 해줍니다. 시스템 콜 이야기입니다. 유저모드, 커널모드를 왔다갔다 하는게 바로 이 이야기입니다. 이때 상태..
프로세스란? (메모리, CPU에 올라가서) 실행중인 프로그램 필요한 것 - CPU: 레지스터에 대한 정보를 알아야 함. (PC를 알면 어디까지 실행했는지 알 수 있을 것) - 메모리: 어드레스 스페이스 - 텍스트, 데이터, 스택, 힙 - I/O 정보 프로그램의 시작 - 로드: 코드와 스태틱 데이터 가져오고, 이때 사용하는 포맷을 기반으로 함(ELF) 등 보통, 필요한 코드를 싹 들고오지는 않고 Lazily하게 필요할 때 들고옴. * 함수 만들었다고 그걸 다 쓰는 경우보단 필요한 경우에 뽑아서 쓰는게 많기 때문 - 동적할당: 스택 세그먼트, 파라미터 초기화, 힙 세그먼트 - 초기화: 파일 디스크립터, I/O나 관련된 스트럭쳐 시그널 - 메인 함수로 점프: main() 프로세스 스테이트 new(created..
https://pages.cs.wisc.edu/~remzi/OSTEP/ Operating Systems: Three Easy Pieces Blog: Why Textbooks Should Be Free Quick: Free Book Chapters - Hardcover - Softcover (Amazon) - Buy PDF - EU (Lulu) - Buy in India - Buy Stuff - Donate - For Teachers - Homework - Projects - News - Acknowledgements - Other Books Welcome to Operating System pages.cs.wisc.edu 운영체제 - 쓰기 편한 방식으로 정확하고 효율적으로, 메모리 공유, 장치 상호작용,..