티스토리 뷰

안녕하세요 Toni 입니다 😇

오늘 소개해드릴 강의는 운영체제인데요 이화여자대학교의 반효경 교수님의 운영체제 너무나도 유명하잖아요!

그래서 오늘부터 듣고 정리한 내용을 블로깅 해보고자 하는데요. 새로운 시작이라 그런지 조금은 설레는 마음이네요ㅎㅎㅎ

그럼 지금부터 시작해볼까여?

일단 강의의 목차는 다음과 같아요.

 

1. 운영체제 개요

2. 컴퓨터시스템의 구조

3. 프로세스 관리

4. CPU 스케줄링

5. 병행 제어

6. 데드락

7. 메모리 관리

8. 가상 메모리

9. 파일 시스템

10. 입출력 시스템

11. 디스크 관리

 

나중에 완강을 하고, 블로그를 모두 작성한다면 링크도 달아놓는걸루.....

우선 목표는 강의 하나당, 블로그 한개로 하여 최대한 자세하게 기록하는게 목표이긴 한데요.

어떻게 될지는 한번 지켜봐주시죠ㅎ

 

자 그럼 real로 시작합니다~

 

운영체제

- 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층

흠... 뭔가 알듯말듯 하죠?

하지만 걱정마세여. 이건 그냥 개요니까 빠르게 한번훑고 다시한번 더 뒤에서 Deep하게 다뤄볼거거든요!

저작권때매 그림 손으로 한땀한땀 그렸는데.... 나도 걍 캡쳐할걸..

 

쉽게 말하자면 컴퓨터의 사용자가 하드웨어적인 것을 몰라도 편하게 사용하게 하는것이 목적이라고 하네요!

 

운영체제의 목적

첫번째로는, 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공하는 것이에요!

  - 운영체제는 사용자/프로그램들이 각각의 독자적 컴퓨터에서 수행되는 것 같은 illusion을 제공

  - 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행

 

두번째로는 , 컴퓨터 시스템의 자원(resource) 효율적으로 관리 - 운영체제에서 가장 중요한 것은 효율성!

  - CPU, 메모리, I/O장치등의 효율적 관리

     - 주어진 자원으로 최대한의 성능을 내도록 해야함 -> 효율성.

     - 특정 사용자/프로그램의 지나친 불이익이 발생하지 않도록 해야함 -> 형평성.  이게 무슨말이냐면, 효율성을 극대화하다

        누군가는 지나친 불이익이 발생하면 안된다는 뜻이에요!

   - 사용자 및 운영체제 자신의 보호

  

실행 중인 프로그램들에게 짧은 시간씩 CPU를 번갈아가며 할당하고, 실행중인 프로그램들에게 메모리 공간을 적절히 분배하는 것이 목적! = 효율성

 

운영체제의 기능

CPU 스케줄링

운영체제 가장 중요한 일중 하나인데요. 간단하게 말하면 어떤 프로그램에게 CPU 사용권을 줄까라는 뜻이에요.

 

메모리 관리

이건 말그대로 한정된 메모리를 어떻게 쪼개어쓸지 라는 것이구요.

 

디스크 스케줄링

운영체제는 효율성(또 나왔죠?)을 매우 추구하기 때문에 요청이 들어온 순서대로 처리하지 않거든요. 

그래서 디스크에 들어온 요청을 어떤 순서로 처리할지 정하는 거죠. 

나중에 들어온 요청이 먼저 실행되는 경우도 있거든요.

 

디스크 스케줄링과 비슷한게 엘레베이터 스케줄링이에요. 

그게 뭐냐구요? 그냥 엘레베이터에요ㅎ

상상해보죠.

이 엘레베이터가 1층에서 100층을 가는 경우 100층 사용자가 제일 먼저 눌렀고,

2층,7층이 각각 나중에 눌렀다 하더라도, 100층을 먼저 방문하고 2층 갔다가 7층 가는 그런 경우 있나요?

없잖아요~

비록 2, 7층이 나중에 눌렸더라도 멈춰서서 태우고 가잖아요. 

이게 왜 그런거같나여?  맞아요. 효율적이기 때문이에요. 디스크 스케줄링도 마찬가지에요. 

이해가 쏙쏙되시나요?

 

캐싱

요런거 아님..

중간단계를 두는 것이라고 일단은 알아도 좋을 것 같아여. 

무슨 중간단계냐구요? 

메모리와 디스크사이의 속도차이 때문에 중간 단계를 두는 거에요. 

사실 디스크에서 정보를 빼오는 작업은 꽤 느린작업이거든요. 

근데 내가 만약 똑같은 데이터를 읽고싶은데, 자꾸 느린 작업을 반복하는건 비효율적이잖아요. 

운영체제는 뭘 제일 중요하게 여긴다했죠? 그쵸 효율성. 

그래서 똑같은 데이터를 또 읽어달라고 할 수 있으므로 메모리 어딘가에 보관해놓고 그걸 부르는 것. 그것을 캐싱이라 합니다. 지금 잘 모르셔도 괜찮아요. 왜냐면 개요니까 나중에 또 다룰거거든요.

 

인터럽트

한국말로 가로채기? 정도가 좋을까요? 컨트롤러들한테 일을 시키고 나서 CPU는 당장 일할 것을 찾아요.  I/O로 요청을 주고 응답을 기다리는 것은 굉장한 시간낭비이기 때문이죠. 우리는 효율성! 을 중시한다는 것을 이미 알고있죠! 자 그럼, 만약 A한테 일을 시키고 CPU가 B 작업을 담당한다 했을때, A에서 I/O가 끝난 경우 CPU한테 나 끝났다고 전달을 하는데 그게 인터럽트 입니다. 컨트롤러가 아까 시킨일 나 다했어요. 라고 인터럽트를 걸어서 CPU한테 알려주고, CPU는 인터럽트 체크를 하여 인터럽트가 들어온 경우 운영체제로 넘어가서 다음 작업도 하게 되는거에요. 느린작업을 시켜놓고, 끝났나 안끝났나 수시로 확인하는 것은 비.효.율적이므로 시킨일이 끝나서 CPU한테 연락하게 하는거죠. CPU제어권은 인터럽트가 들어오면 운영체제로 자동으로 넘어가는 것이구요.

 

 

이렇게 1강이 끝났는데요~ 사실 몰라도 괜찮아요. 교수님도 그러시더라구요. 아직 개요니까 몰라도된다. 그냥 가볍게 들어라. 그러니까 이 글도 이해가 안되더라두 가볍게 보세여. 나중에 이 과목이 끝날때쯤엔 다 이해가 되어있겠지.. 

그러니까 그냥 보세요.

 

그냥 보자구요.. 일단 시작한 것이 대단한거니까..⭐️

 

해당 강의 링크는 여기를 클릭해주세요

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/04   »
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
글 보관함