목록운영체제 (13)
-
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/lHLyO/btrnd5GhxQ7/4CCnVKeUkJS2WPdUquwot0/img.png)
지난 시간엔 스레드의 관리와 스레드의 개념에 대해 알아보았었습니다. 이번 시간엔 프로세스가 시스템에서 어떻게 스케줄링되어서 자원을 할당 받는지 공부하겠습니다. 중요한건 CPU에 할당 받는 부분에 대해서 집중적으로 한 번 알아보겠습니다. 우리가 프로세스 스케줄링을 왜 해야하는지 알고 계신가요??? 우리가 사용하는 시스템은 하나의 프로세스만 가지고 있지 않습니다. 즉 우리 시스템은 다중 프로그래밍이기 때문에 여러 프로세스가 존재합니다. 그렇기 때문에 자원을 나누어서 사용해야할 필요가 있습니다. 이를 적절하게, 효율적으로 사용하려면 자원을 할당 할 프로세스를 선택할 때 "스케줄링" 이라는 개념이 사용됩니다. 이 중 자원을 효율적으로 관리하기 위해 총 2가지로 나눌 수 있습니다. 시간 분할 관리 (time sh..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bEP2nT/btrm3PD1jAZ/7fewuTaysJW8kv4W2zRZSK/img.png)
지난 시간에 배운건 프로세스 관리에 대해 배웠습니다. 그 과정에서 컨텍스트 스위치를 이야기 했었고 컨텍스트 스위칭은 비용이 크기 때문에 가능한 줄이는 것이 좋다고 했었고 그 과정에서 바로 스레드가 있었습니다. 스레드의 뜻은 '실' 과 같습니다. 그럼 스레드가 운영체제에서는 어떻게 다루어지는지 이번 시간에 한 번 자세히 알아보겠습니다. 스레드를 얘기하려면 먼저 프로세스를 이해할 필요가 있습니다. 프로세스는 여러 형태로 정의가 되었었죠. 어떤 작업을 하는데 있어서 자원이 필요하기 때문에 그 자원을 제어하는 것. 그것이 프로세스의 역할입니다. 그렇다면 프로세스는 자원과 제어라는 두 가지로 나누어서 생각을 할 수 있습니다. 이 때 제어 부분을 따로 때놓고 고려할 때 이것을 스레드라고 할 수 있습니다. 보통 실 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/KKWb5/btrm0qIQ4ev/x2OUETLy6n3IKUcugeG5T0/img.png)
인터럽트를 정희해보면 "예상치 못한, 외부에서 발생한 이벤트" 입니다. Unexcpected, external events라고도 부릅니다. 가장 대표적인게 I/O interrupt입니다. 예를들어 게임을 하는데, 게임 프로세스가 돌고있다고 합시다. 그럼 우리가 언제 총을 쏘고 언제 클릭을 할 지 프로세스가 알고 있나요? 그것을 I/O interrupt라고 합니다. 그 외에도 다양한 interrupt가 있지만 중요한건 인터럽트가 뭔지 알고 있어야 합니다. 그럼 이 인터럽트가 발생하면 어떻게 되는지 처리 과정을 알아보겟습니다. 프로세스가 돌고 있는데 누가 쿡 찌르면 어떻게 하나요? 인터럽트가 발생하면 이게 왜 발생했는지, 무엇이 쿡 찔렀는지 아니면 이걸 무시할건지를 결정해야 합니다. 인터럽스 서비스 할 것으..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/yUW8k/btrmXi6Hw3y/pc24b4LiK4XIQVsa7nokQ0/img.png)
지금까지 프로세스 이름을 많이 봐왔었습니다. 프로세스는 단순히 말해 '실행의 주체' 라고 정리하고 넘어왔습니다. 앞으로는 프로세스에 대해 좀 더 깊히 다루어 보겠습니다. 여러분들은 프로세스를 어디에서 보셨나요? 아마 안 보신 분들은 거의 없으실 겁니다. 윈도우즈 + Delete를 눌러 작업 관리자를 들어가면 이런 화면 보신 적 있으시죠?? 실제로 우린 프로세스를 아주 많이 사용하고 있습니다. 이 프로세스는 작업(Job)과 구분이 됩니다. 이 작업은 실행할 프로그램과 데이터라고 합니다. 즉 실행하기 전의 상태를 의미합니다. 반면에 프로세스는 실행하기 위해 커널에 등록된 작업을 일컫습니다. 잡과 프로세스를 그림으로 보면 이렇게 표현됩니다. 확실히 명확하지요?? 잡은 커널에 등록되지 않은 실행 요청하기 전의 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Y5g0S/btrmRvRQkR6/UhU0sgGfLKCJ1swjWLRBPk/img.png)
이전 시간의 포스팅에선 운영체제의 분류와 역사에 대해 알아보았습니다. 이번엔 작업 수행 방식에 따라 조금 다른 관점에서 살펴보겠습니다. 작업 처리에 제한 시간을 가지는 시스템을 우리는 실시간 시스템이라고도 부릅니다. 어떤 응답을 요청했을 때 제한 시간 내에 원하는 응답을 제공하게끔 유도하는 것으로서 자원 활용 효율보다 응답의 시간을 중요하게 여기는 시스템입니다. 이를 우리는 Real-time Systems라고 부릅니다. 이를 우리는 Hard real-time task와 Soft real-time task로 구분할 수 있습니다. 자 우리가 원자력 시스템을 관리하는 시스템을 개발한다고 가정하겠습니다. 그럼 온도를 1도마다 올라갈 때마다 알림이 뜬다고 했을 때 만약 이게 잘못되면 발전소가 사고가 날 수도 있습..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/CYjzv/btrmRQO8FC7/av0Mbotf9jvJhwNOFHahcK/img.png)
저번시간 포스팅을 복습해보겠습니다. 운영체제라는것은 컴퓨터 시스템 자원(하드웨어)를 효율적으로 관리해서 사용자와 응용 프로그램에게 서비스를 제공하는 것을 운영체제라고 한다고 했습니다. 그럼 운영체제의 역할이 어떤 것이 있을지 살펴보겠습니다. 과거에는 문자로 입력을 한 것이 대부분 문자로 출력되는 Character User Inteface인 CUI를 사용했습니다. 하지만 요즘은 그래픽을 활용한 그림위주의 인터페이스가 자주 나오고 있고 이를 GUI라고도 부릅니다. 또한 최근엔 특정한 목적만을 가지고 기기를 사용하기도 해서 사용자가 시스템을 편하게 사용하게 하기 위한 용어로서 EUCI라고도 합니다. 예를들면 MP3를 보면, MP3는 음악을 듣기 위해서만 제작되므로 이것도 EUCI라고도 부릅니다. 그리고 중요한..