0. 운영 체제란?
운영 체제 또는 오퍼레이팅 시스템(Operating System, 약칭:OS)은 시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어이다.
또한 입출력과 메모리 할당과 같은 하드웨어 기능의 경우 운영 체제는 응용 프로그램과 컴퓨터 하드웨어 사이의 중재 역할을 한다.[1][2] 그러나 응용 프로그램 코드는 일반적으로 하드웨어에서 직접 실행된다. 운영 체제는 휴대 전화, 게임기에서부터 슈퍼컴퓨터, 웹 서버에 이르기까지 컴퓨터를 포함하는 거의 모든 장치에서 볼 수 있다. 잘 알려진 현대의 PC 운영 체제에는 마이크로소프트 윈도우, 맥 OS X, 리눅스가 있다.[3]
운영 체제는 실행되는 응용 프로그램들이 메모리와 CPU, 입출력 장치 등의 자원들을 사용할 수 있도록 만들어 준다. 더불어, 이들을 추상화하여 파일 시스템 등의 서비스를 제공한다. 또한 멀티태스킹을 지원하는 경우, 여러 개의 응용 프로그램을 실행하고 있는 동안, 운영 체제는 이러한 모든 프로세스들을 스케줄링하여 마치 그들이 동시에 수행되는 것처럼 보이는 효과를 낸다.
1. 개요
1. 운영체제의 정의와 필요성
2. OS의 구조
운영 체제 (Operating System) - 개요
1. 운영체제의 정의와 필요성 운영체제의 역할은 무엇일까? 운영체제는 Abstraction과 Policy를 제공하는 역할을 한다. Abstraction은 하드웨어를 손쉽게, 효율적으로 사용할 수 있는 '추상화'이다. 가령
do-my-best.tistory.com
2. 운영체제 구조 (1)
1. 컴퓨터의 기원과 발전
2. Batch system(Automatic job sequence, Spooling)
3. Multiprogramming
4. Timesharing
5. Multitasking
운영 체제 (Operating System) - 운영체제 구조
1. 컴퓨터의 기원과 발전 기계적인 스위치를 이용하여 1bit 단위로 컴퓨터에 입력하던 Hand-operated system를 시작으로 1950년도 부터 컴퓨터는 급속도로 발전하였다. 이 과정에서 '효율성'과 '성능'을
do-my-best.tistory.com
3. 운영체제 구조 (2)
1. OS설계
2. Layering
3. Module
4. 실행 모드
4-1. Kernel mode
4-2. User mode
5. Kernel design
5-1. Monolithic kernel
5-2. Micro kernel
5-3. Hypervisor
운영 체제 (Operating System) - 운영체제 구조 (2)
1. OS설계 이전 시간에는 기존의 운영체제에 어떠한 문제점이 있었고, 그 문제점을 해결하기 위해서 운영체제의 구조가 어떻게 발전해왔는지 알아봤다. 이번 시간에는 그 운영체제의 구조가 어
do-my-best.tistory.com
4. Process
1. Process의 생성
1-1. Compliler [Source code --(Assembler)--(Compiler)--> Object file]
1-2. Linker [Object file + Library --(Linker)--> Executable]
1-3. Loader[Executable --(Loader)--> Memory]
1-4. Runtime system?
2. 프로세스 관리
3. Context switching
4. 프로세스 생성과 종료
https://do-my-best.tistory.com/entry/%EC%9A%B4%EC%98%81-%EC%B2%B4%EC%A0%9C-Operating-System-Process
운영 체제 (Operating System) - Process
1. Process의 생성 지금까지 OS의 필요성과 기본적인 구조를 배웠다. 이제 조금 더 자세히 OS가 어떻게 작동하는 지 살펴보자. 이번에는 OS에서 가장 중요한 Abstraction인 Process에 대해 배워보자. 일련
do-my-best.tistory.com
5. Computer Architecture
1. Computer Architecture
2. Basic HW Mechanisms - Event handling mechanism
3. I/O 처리 기법
3-1. Pooling (Programmed I/O)
3-2. Direct Memory Access(DMA)
4. I/O Device access
운영 체제 (Operating System) - Computer Architecture
1. Computer Architecture 지금까지 컴퓨터의 발달, OS의 구조, 프로세스에 대해서 알아보았다. 이제 프로세스의 실행이 실제 컴퓨터 구조에서 어떻게 실행되는지 조금 더 깊게 들어가보자. 프로세스의
do-my-best.tistory.com
5-A. 과제 1 : Kernel System Call 이해와 구현
운영 체제 (Operating System) - Kernel System Call 이해와 구현
1. Trpa, System call, Exception? 우선 System call의 정의와 역할에 대해서 알아보자. System call이란 OS Kernel이 제공하는 어플리케이션으로, 간접적으로 추상화된 하드웨어 접근을 이용하여 의도한 기능을..
do-my-best.tistory.com
6. CPU Scheduling
1. 스캐줄링의 개념
2. 스케줄링의 메카니즘
3. 스케줄링 알고리즘
3-1. First-Come, First-Served Scheduling
3-2. Shortest-Job-First Scheduling
3-3. Priority Scheduling
3-4. Round-Robin Scheduling
3-5. Multilevel Queue Scheduling
3-6. Multilevel Feedback Queue Scheduling
4. Mutliple Processor Scheduling
운영 체제 (Operating System) - CPU Scheduling
1. 스캐줄링의 개념 어떻게 Process에 자원을 할당할 것인지에 대한 정책으로, Multiprogramming에서 기반했다고 한다. 잠시 2강에서 배웠던 Multiprogramming의 개념에 대해서 다시 살펴보고 가자. Multitasking
do-my-best.tistory.com
6-A. 과제 2 : Task Scheduler에서 Priority 조정을 위한 System Call 구현
운영 체제 (Operating System) - Task Scheduler에서 Priority 조정을 위한 System Call 구현
1. Task structure 프로그램을 실행하면 프로세스와 스레드가 생성되면서 일련의 실행흐름이 탄생하게 된다. 리눅스 커널의 관점에서 이 실행 흐름을 보았을 때, 프로세스와 스레드는 task로 관리되
do-my-best.tistory.com
7. IPC
1. IPC의 정의 및 필요성
2. IPC의 두가지 모델 (Shared memory, Message passing)과 구현
2-1. 공유 메모리 방식 (Shared Memory)
2-2. 메시지 교환 방식 (Mesage Passing)
3. IPC 구현
3-1. Message Passing - Pipe
3-2. Message Passing - Signal
3-3. Message Passing - Message queue
3-4. Message Passing - Socket
3-5. Shared Memory
https://do-my-best.tistory.com/entry/%EC%9A%B4%EC%98%81-%EC%B2%B4%EC%A0%9C-Operating-System-IPC
운영 체제 (Operating System) - IPC
1. IPC의 정의 및 필요성 IPC란 InterProcess Communication으로, Process 들 간에 데이터 및 정보를 주고 받기 위한 메카니즘이다. 각 프로세스의 독립된 영역 외의 영역과 커뮤니케이션 하는 것이기 때문에
do-my-best.tistory.com
8. Thread
1. Thread의 정의
2. Multi-Threaded Program
3. Multicore Programming
4. User and Kernel thread
4-1. User thread
4-2. Kernel thread
5. Mapping of User & Kernel thread
5-1. Many to One
5-2. One-to-One
5-3. Many-to-Many
6. Thread issue
6-1. Thread creation
6-2. Thread cancellation
6-3. Thread pools
6-4. Thread간 IPC
6-5. Thread creation
https://do-my-best.tistory.com/entry/%EC%9A%B4%EC%98%81-%EC%B2%B4%EC%A0%9C-Operating-System-Thread
운영 체제 (Operating System) - Thread
1. Thread의 정의 이전 강의에서 보았듯이, Process는 Scheduling 단위인 Execution unit과 자원의 보호인 Protection domain의 추상화로, Program을 실행한 개념이다. 그런데 프로세스에 실행 흐름이 다수 개라면..
do-my-best.tistory.com
9. 동기화 (1)
1. Data Consistency
2. Critical section 해결 알고리즘 (SW)
2-1. 하나의 shared variable
2-2. 두개의 shared variable
3.3 Peterson solution (세개의 shared variable)
3. Critical section 해결 알고리즘 (HW)
3-1. Test and set
3-2. Swap
4. Semaphore
5. Semaphore의 문제
6. Monitor
운영 체제 (Operating System) - 9. 동기화 (1)
1. Data Consistency 이번 강의는 Data Consistency(데이터 일관성)를 해치는 동시 접근 문제에 대해서 알아보자. 데이터 일관성을 유지하기 위해서 서로 협력하는 프로세스들이 순차적으로 수행하게 만드
do-my-best.tistory.com
10. 동기화 (2)
운영 체제 (Operating System) - 동기화 (2)
저번 시간에는 어떻게 동기화를 어떻게 얻을 수 있는지에 대해서 알아보았다. 이번 시간에는 동기화에 어떤 문제들이 있고, 어떻게 해결했는지에 대해서 알아보자. 이번에 알아볼 동기화 고전
do-my-best.tistory.com
1. Bounded-buffer problem(Consumer produce problem)
2. Readers-Writers Problem
2-1. Readers-Writers Problem without Writer Starvation
3. Dining-Philosophers Problem
3-1. Dining-Philosophers Problem : Wrong Solution
3-2. Dining-Philosophers Problem : Possible Solutions
3-3. Dining-Philosophers Problem : Best Solution
4. Concurrency 유지, Race condition 방지, Process간의 협업을 위한 체크 요소
11. Memory Management (1)
1. 주소
2. 단계별 주소 관리
2-1. 초창기
2-2 단계 별 메모리 결정 방법
3. CPU에서 사용하는 주소에 따른 변환 방법
3-1. CPU에서 Physical relative address를 사용
3-2. CPU에서 Virtual address를 사용
4. Virtual memory
4-2. Paging
5. 여러 Paging 기법
5-1. 초기
5-2. Translation Look-aside Buffer (TLB)
5-3. Multilevel Page Table
5-4. Inverted Page Table
5-5. Demand Paging
운영 체제 (Operating System) - Memory Management (1)
CPU의 활용률을 극대화 하며, 사용자에게 빠른 응답을 제공해야 하기 때문에(여러 프로세스를 동시에 실행가능하게 된 Multi-programming때 부터 특히) 한정된 Memory의 관리에 대한 필요성이 대두되었
do-my-best.tistory.com
12. Memory Management (2)
1. Page Replacement
2. Page replacement algorihtm
2-1. Optimal Algorithm
2-2. FIFO Algorithm
2-3. SCR(Second Chance Replacement) Algorithm
2-4. Clock Algorithm
2-5. LFU(Least Frequently Used) Algorithm
2-6. NRU(Not Recently Used) Algorithm
2-7. LRU(Least Recently Used) Algorithm
2-8. Swapping
3. Countigous Memory Allocation
운영 체제 (Operating System) - Memory Management (2)
1. Page Replacement 이전 포스터에서 Demaind Paging을 다뤘는데, 필요할 때 VM을 Secondary storage에서 PM으로 로드하는 방식을 이용한다고 하였다. 하지만 User process가 사용하는 VM의 Page수보다 PM의 Fram..
do-my-best.tistory.com
13. File system
1. Page Replacement
2. Page replacement algorihtm
2-1. Optimal Algorithm
2-2. FIFO Algorithm
2-3. SCR(Second Chance Replacement) Algorithm
2-4. Clock Algorithm
2-5. LFU(Least Frequently Used) Algorithm
2-6. NRU(Not Recently Used) Algorithm
2-7. LRU(Least Recently Used) Algorithm
2-8. Swapping
3. Countigous Memory Allocation
https://do-my-best.tistory.com/manage/newpost/100?type=post&returnURL=https%3A%2F%2Fdo-my-best.tistory.com%2Fmanage%2Fposts%2F
do-my-best.tistory.com
14. 질문과 답변
VM공유하니까 Stack도 공유하는게 아닌가? : ㄴㄴ -> 아니다 이건 fork할때 달라짐 stack만 다르다. (context 등등을 위해서, 그리고 switch할 때 stack이 전환된다)
왜 Thread 만들 때 data section에서 COW가 안일어나고 공유되는거지? : ㅇㅇ -> 안일어남, process fork는 exec라는 함수가 일어나서 COW가 일어나는거지, do_fork자체는 그냥 메모리 복사 (이걸 사용한다는것)
Scalability는 core에서 동시에 실행한다는 것인가? -> multicore programming
최대 4명의 철학자만 앉게 하는게 어떻게 문제를 해결하는가?
CPU당 프로세스를 관리하는 Queue가 다양함 -> 알고리즘별로 나뉨, 근데 이 Queue는 필요에 따라 생성됨
-> 그리고 그 Queue에 대한 Priority나 속성들을 통해 OS가 Queue단위로 관리
-> 그리고 그 Queue안에서 그 알고리즘 단위로 스케줄링하는것
'학교 공부 > OS' 카테고리의 다른 글
운영 체제 (Operating System) - File system (0) | 2021.11.30 |
---|---|
운영 체제 (Operating System) - Memory Management (2) (0) | 2021.11.30 |
운영 체제 (Operating System) - 동기화 (2) (0) | 2021.11.30 |
운영 체제 (Operating System) - 9. 동기화 (1) (0) | 2021.11.29 |
운영 체제 (Operating System) - Thread (0) | 2021.11.29 |
- 0. 운영 체제란?
- 1. 개요
- 2. 운영체제 구조 (1)
- 3. 운영체제 구조 (2)
- 4. Process
- 5. Computer Architecture
- 5-A. 과제 1 : Kernel System Call 이해와 구현
- 6. CPU Scheduling
- 6-A. 과제 2 : Task Scheduler에서 Priority 조정을 위한 System Call 구현
- 7. IPC
- 8. Thread
- 9. 동기화 (1)
- 10. 동기화 (2)
- 11. Memory Management (1)
- 12. Memory Management (2)
- 13. File system
- 14. 질문과 답변