목차
📂content
1. CPU 스케줄링
1-1. FCFS(First-Come First-Served)
- 초록색 원은 여러 프로그램들이 cpu를 사용하기 위해 cpu큐에 서서 기다리는 것
- cpu를 사용하기 위한 프로세스는 p1, p2, p3
- 도착 순서는 p1, p2, p3
- 모든 프로그램은 cpu와 i/o 장치를 쓰는 것을 반복한다. 그래서 p1은 지금 cpu를 24초 쓰겠다고 하는데, cpu를 24초 쓰고 나면 i/o를 하러 가고, i/o 끝나면 cpu에 줄 서고 이런 식이 반복됨
- 이 그림은 선착순으로 처리해준다고 하는 것 ⇒ 이 것은 효율적이지는 않다.
- p1이 먼저 왔을 경우 평균 기다리는 시간이 17초
- 이번에는 p2가 먼저 도착했다고 가정했더니 평균 기다리는 시간이 3초가 나옴.
1-2. SJF(Shortest-Job-First)
- FCFS의 단점 해소
- cpu를 짧게 쓰려는 프로세스에게 주자
- 도착 시간 고려X
- 단점은 cpu를 길게 쓰려는 프로그램이 무한정 기다려야할 수 있다. 왜 무한정? 큐가 변화가 없으면 무한정이 아니지만 프로그램이 i/o를 마치고 또 줄을 서기 때문에 이론적으로 시간이 긴 프로그램은 cpu를 영원히 쓰지 못한다는 단점이 존재.
- 효율성은 있지만 형평성에 문제가 있다.
위의 두 가지 과정은 프로세스에게 cpu를 주면 뺏지 않는다는 가정이 있음. 현재 cpu스케줄링에서 가장 많이 사용되는 방법은 아래에 있다.
1-3. RR(Round Robin)
- 프로세스들이 cpu를 얼마나 사용하려고 하는지와 상관없이 한 번에 사용할 수 있는 시간이 미리 정해져 있다. 그래서 예를 들어, p1이 cpu를 오래쓰고 싶더라도 cpu를 잡아서 쓸 수 있는 시간이 정해져 있기 때문에 그 시간이 지나면 무조건 cpu를 뺏겨서 다시 줄서야함.
- 이 방법은 cpu를 빼앗는 것이 필요하다. 하지만 이는 운영체제 혼자서는 못하고 하드웨어의 지원을 통해 인터럽트를 발생시켜서 cpu를 빼앗고 큐 뒤에 줄을 세운다.
- 장점은 cpu를 길게 쓰려는 프로그램은 cpu를 기다리는 시간이 길어지고, 짧게 쓰려는 프로그램은 기다리는 시간도 짧다.
- n-1이라고 한 이유는 본인은 제외했기 때문
2. 메모리 관리
- 메모리는 휘발성 매체여서 비어있다가 전원을 키면 운영체제가 메모리에 올라가서 실행된다. 이런 상황에서 각각의 실행파일을 실행시키면 이 것들이 메모리에 올라가서 프로세스가 된다.
- 정확하게는 메모리에 바로 올라가는 것이 아니라 한단계를 더 거친다.
- 프로그램을 실행시키면 그 프로그램이 메모리에 올라가는 독자적인 메모리 주소가 매겨지고 이것이 바로 (물리적인)메모리에 올라가는 것이 아니고 본인만의 메모리를 형성하게 된다.
- 메모리는 어디에 만들어지느냐?
- 머리 속에 만들어짐(가상 메모리). 실제 메모리에 만들어지는 것은 아님.
- 실제 메모리에는 가상 메모리의 부분 중에서 당장 필요한 부분만 물리적인 메모리에 올련 놓게 된다.
- 언젠가는 물리적인 메모리가 다 찰 것이다. 그러면 새로운 것을 올려놓을 때 기존의 것을 쫓아내야한다. 쫓겨나는 얘는 스왑 영역으로 간다.
- 메모리는 어디에 만들어지느냐?
- 하나의 디스크이지만 용도가 완전히 다르다.
- 디스크_파일 시스템 : 디스크의 그림 파일, 텍스트 파일을 저장하듯이 프로그램 실행파일도 저장이 되어 있다. 전원이 나가더라도 유지되어야하는 부분
- 프로그램을 실행시켰을 때 프로세스가 만들어지고 그 프로세스만의 가상메모리에서 당장 필요한 것은 물리적인 메모리에 올라가지만, 그렇지 않은 부분은 메모리 공간이 없으니까 어딘가에 보관을 해야하는데, 그것을 보관하는 장소가 디스크라는 것.
- 메모리에서 쫓겨난 가상 메모리의 부분을 보관하는 것을 디스크의 스왑영역이라 부른다. 그래서 스왑영역은 메모리의 연장공간이라고 생각하기.
- 컴퓨터가 꺼지면 파일 시스템은 살아있다. 메모리는 디램인데, 이건 휘발성이다. 그래서 자동적으로 사라짐. 스왑 영역은 살아는 있지만 의미가 없는 정보가 된다. 왜냐하면 프로세스라는 것은 컴퓨터 전원이 켜져 있을 때만 의미가 있기 때문이다.
- 어떤 페이지를 메모리에서 쫓아낼 것인가?
- 페이지 : 가상메모리가 쪼개지는 단위
2-1. LRU vs RFU
- cpu가 1번 요청했는데, 1번은 디스크에 있음. 그러면 cpu가 바로 접근 할 수 없어서 운영체제가 디스크 컨트롤러에게 요청한 다음에 메모리로 읽어들이는 과정을 거칠 것이다. 그래서 메모리에 1번이 올라가서 cpu가 가져다가 쓸 것이다. 그리고 나서 cpu가 또 1번을 요구해도 메모리에 있으니 바로 가져다가 쓸 수 있다.
- 4번까지 올리니까 메모리가 꽉참. 그런데 cpu는 5번도 필요함. 그럼 운영체제는 무엇을 쫓아내고 5번을 가져올 것인가?
- 미래를 모르는 상황에서 가까운 미래에 사용될 가능성이 낮은 친구를 쫓아내는 것이 좋다. 미래를 모를 때 아는 가장 좋은 방법은 과거를 보는 것이다. 메모리도 비슷하다.
- LRU : 가장 오래 전에 참조 페이지 삭제 ⇒ 1번
- RFU : 참조 횟수가 가장 적은 페이지 삭제 ⇒ 4번
3. 디스크 스케줄링
- cpu를 쓰고 나서 디스크의 파일을 읽어달라거나 파일을 저장해달라거나 이런 요청이 들어오면 그런 프로세스는 디스크 큐에 쌓이게 된다. 디스크는 원판이 회전하는 매체
- 삼각형은 디스크의 헤드. 헤드가 왔다갔다 움직임
- 디스크의 접근 시간 중에 제일 많은 부분을 차지하는 것이 디스크 헤드의 이동시간
- sector에 데이터가 저장되어 있음
3-1. FCFS(First-Come First-Served)
3-2. SSTF(Shortest Seek Time First)
- 효율성 측면에서는 좋지만 형평성이 없다.
3-3. SCAN
- 헤드가 디스크의 한쪽 끝에서 다른쪽 끝으로 이동하며 가는 길목에 있는 모든 요청을 처리한다.
- 다른 한쪽 끝에 도달하면 역방향으로 이동하며 오는 길목에 있는 모든 요청을 처리하며 다시 반대쪽 끝으로 이동한다.
4. 저장장치 계층구조와 캐싱(caching)
- 지금까지 컴퓨터의 내부 모습은 cpu, 메모리, 디스크 이렇게 소개해줌. 그래서 이 그림에는 cpu가 포함이 안 되어 있는데 맨 위에 cpu가 있다.
- 디램이라하는 Main Memory가 있다. cpu 안에는 register이라는 것이 있다. 기계어가 보통 cpu를 실행할 때는 register에 있는 값을 가지고 연산한다. register을 포함한 cpu와 main memory 사이의 속도차이를 완충하기 위해 cache memory가 있다.
- 밑에 디스크 부분은 it 발전에 따라 약간 달라짐
- 위에서 밑으로 내려갈 수록 느리고, 위로 올라갈 수록 비싸다. 용량은 아래로 갈수록 더 큼. volatility 휘발성. 하드 디스크는 비휘발성. 위쪽은 다 휘발성. primary는 cpu가 직접 실행할 수 있다는 의미. secondary는 cpu가 직접 접근을 못하고 primary에 올려놓고 접근해야함.
- 계층 구조를 하는 이유는 속도차이를 완충하기 위해
- 어떤 데이터가 필요하면 처음에는 아래서부터 올려서 사용해야함. 동일한 데이터를 다시 요청하면 아래에서부터 올라올 필요 없이 중간 경로에 저장하고 있으면 안 내려가도 된다. ⇒ 캐싱의 원리
5. 플래시 메모리
- 전원이 나가도 내용이 유지
- 전력소모가 적다.
- 물리적인 충격에 강하다.(하드에 비해)
- 크기가 작고 가볍다
- 전하?가 빠져나가서 0→1로 바뀌어서 시간이 오래지나면 데이터를 바르게 못 읽는다는 단점이 있다.
6. 운영체제의 종류
- 운영체제는 대용량의 클라우드 서버, 데스크탑, 노트북, 스마트폰, 태블릿 등에서 사용됨.
- 운영체제를 개발한 개발자들은 소스코드를 왜 공개를 한 것일까?
- 소프트웨어라는 상품이 시장에서 가지는 특이한 성질때문
- 한 번 만들 때는 인건비가 들지만, 그 이후에는 원가?가 안 들어간다. 성능이 좋아서 시장을 장악해버리면 2,3등은 죽는다. 그래서 나온 게 공개 소프트웨어. 어짜피 망한 거(시장 장악에 실패해서) 그냥 공짜로 소스코드를 공개한 것. 근데 2등 소프트웨어가 소스코드를 공개해버리면서 많은 사람들이 자기가 원하는 방식으로 소스코드를 바꾸면서 시장의 점유율이 생김
- 공짜로 소스코드를 올린 사람들은 망했냐? → 아님
- 교육시장, 컨설턴트 등의 활동과 버그가 있으면 전세계의 사람들이 같이 찾으면서 탄탄한 소프트웨어가 되어감.
- 소프트웨어라는 상품이 시장에서 가지는 특이한 성질때문
📑 출처
http://www.kocw.net/home/cview.do?cid=4b9cd4c7178db077
감사합니다😊
'🎥Etc > [kocw]운영체제' 카테고리의 다른 글
[Ch2]컴퓨터 시스템의 구조4 (0) | 2023.06.23 |
---|---|
[Ch2]컴퓨터시스템의 구조3 (0) | 2023.06.23 |
[Ch2]컴퓨터 시스템의 구조1,2 (0) | 2023.06.23 |
[Ch1]운영체제의 개요1 (0) | 2023.06.23 |
목차 (0) | 2023.06.23 |