2021/08

· 일상
벌써 여름방학이 끝나버렸다.. 당장 내일 아침 9시 영어 커뮤니케이션 수업이 있는데,, 신입생들과 무슨 얘기를 해야 할지.. 앞길이 캄캄하다. 아무튼 끝난건 끝난 거고, 여름방학 시작할 때 계획 글을 썼는데 어느 정도 지켰는지 스스로 정리하면 나중에 읽을 때 재밌을 것 같아서 적어둔다. 이전 글 : https://suhwanc.tistory.com/162 3-1 여름방학 계획 이번 방학도 다른 방학과 다를 것 없이 자기 개발 계획을 세워보려한다. 다른 방학과 다른 점이 있다면, 이번 학기는 시험 기간에 놀고 먹다보니 종강하고 쉴 필요가 없어졌고, 알고리즘 문제 풀 suhwanc.tistory.com 1. 스프링 공부하기 목표 인프런 - 김영한 강사님의 스프링 로드맵을 따라서 공부하고, 모르는 부분은 열심..
· 운영체제
본 포스트는 공룡책이라 불리는 Abraham Silberschatz, Peter B. Galvin, Greg Gagne의 『Operating System Concept 10th』 을 바탕으로 작성하였습니다. Ch 8. 교착 상태 (Deadlocks) 다중 프로그래밍 환경에서는 여러 스레드가 한정된 자원을 사용하려고 서로 경쟁할 수 있다. 한 스레드가 자원을 요청했을 때, 그 자원을 사용할 수 없는 상황이 발생할 수 있고, 그때는 스레드가 대기 상태로 들어간다. 이처럼 대기 중인 스레드들이 결코 다시는 그 상태를 변경시킬 수 없으면 이런 상황을 교착 상태라 부른다. 교착 상태의 유명한 사례는 이러하다. 두 기차가 교차로에서 서로 접근할 때는, 둘 다 완전히 정지해야 하며 상대방이 없어지지 않는 한 누구도 ..
· 운영체제
본 포스트는 공룡책이라 불리는 Abraham Silberschatz, Peter B. Galvin, Greg Gagne의 『Operating System Concept 10th』 을 바탕으로 작성하였습니다. Ch 6. Synchronization Tools 협력적 프로세스란 시스템 내에서 실행 중인 다른 프로세스의 실행에 영향을 주거나 영향을 받는 프로세스이다. 협력적 프로세스는 논리 주소 공간(코드 및 데이터)을 직접 공유하거나, 공유 메모리 또는 메시지 전달을 통해서만 데이터를 공유할 수 있다. 이번 챕터에서는 협력적 프로세스들의 질서 있는 실행을 보장하여, 데이터의 일관성을 유지하는 다양한 메커니즘을 논의한다. 6.1 배경 이미 우리는 프로세스가 병렬로 실행될 수 있다는 것을 배웠다. (비동기) 하..
· 운영체제
본 포스트는 공룡책이라 불리는 Abraham Silberschatz, Peter B. Galvin, Greg Gagne의 『Operating System Concept 10th』 을 바탕으로 작성하였습니다. Ch 5. CPU Scheduling CPU 스케줄링은 다중 프로그램 운영체제의 기본이다. 운영체제는 CPU를 프로세스 간에 교환함으로써, 컴퓨터를 보다 생산적으로 만든다. 이번 장에서는 기본 스케줄링 개념과 여러 스케줄링 알고리즘을 소개한다. 5.1 기본 개념들 1) 프로세스 실행은 CPU 버스트와 I/O 버스트의 반복이다. 2) CPU 스케줄러 CPU가 유휴 상태가 될 때마다, 운영체제는 준비 큐에 있는 프로세스 중 하나를 선택해 실행해야 한다. 선택 절차는 CPU 스케줄러에 의해 수행된다. (주..
· 운영체제
본 포스트는 공룡책이라 불리는 Abraham Silberschatz, Peter B. Galvin, Greg Gagne의 『Operating System Concept 10th』 을 바탕으로 작성하였습니다. Ch 4. Threads & Concurrency 대부분의 현대 운영체제는 한 프로세스가 다중 스레드를 포함하는 특성을 제공한다. 특히 다중 CPU를 제공하는 최신 다중 코어 시스템에서 스레드 사용을 통한 병렬 처리의 기회를 식별하는 것이 점차 중요해지고 있다. 4.1 Overview 스레드는 CPU 이용의 기본 단위이다. 스레드는 스레드 ID, 프로그램 카운터(PC), 레지스터 집합, 그리고 스택으로 구성된다. 또한 스레드는 같은 프로세스에 속한 다른 스레드와 코드, 데이터 섹션, 열린 파일이나 신..
· 운영체제
본 포스트는 공룡책이라 불리는 Abraham Silberschatz, Peter B. Galvin, Greg Gagne의 『Operating System Concept 10th』 을 바탕으로 작성하였습니다. Ch 3. Process 오늘날 컴퓨터 시스템들은 메모리에 다수의 프로그램을 제어하고, 구획화할 것을 필요로 한다. 이러한 필요성은 프로세스의 개념을 만들었고, 프로세스란 실행 중인 프로그램을 말한다. 프로세스는 현대의 컴퓨팅 시스템에서 작업의 단위이다. 이번 장에서는 프로세스가 무엇인지, 운영체제에서 어떻게 표현되는지 그리고 어떻게 작동하는지에 대해 설명한다. 3.1 프로세스 개념 (Process Concept) 운영체제에 대해 논의할 때 중요한 것 중 하나는 "모든 CPU 활동들을 어떻게 부를 것..
· 운영체제
본 포스트는 공룡책이라 불리는 Abraham Silberschatz, Peter B. Galvin, Greg Gagne의 『Operating System Concept 10th』 을 바탕으로 작성하였습니다. Ch 2. Operating System Structures 운영체제에 대해 살펴보기 위한 몇 가지 좋은 관점이 있다. 첫 번째, 운영체제가 제공하는 서비스에 초점을 맞추는 것 두 번째, 운영체제가 사용자와 프로그래머에게 제공하는 인터페이스에 초점을 맞추는 것 세 번째, 시스템의 구성요소와 그들의 상호 연결에 초점을 맞추는 것이다. 이번 장에서는 운영체제의 세 가지 측면을 모두 살펴본다. 운영체제가 제공하는 서비스는 무엇이며, 이 서비스는 어떤 방식으로 제공되는지, 이 서비스들이 어떻게 디버깅 되며,..
· 운영체제
본 포스트는 공룡책이라 불리는 Abraham Silberschatz, Peter B. Galvin, Greg Gagne의 『Operating System Concept 10th』 을 바탕으로 작성하였습니다. Ch 1. Overview 1장에서는 이 책의 전반적인 내용을 모두 담고 있다. 따라서 책을 모두 읽고 난 후 다시 1장을 읽어보는 것을 추천한다. 운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중개자(intermediary) 역할을 한다. 운영체제의 목적은 사용자가 프로그램을 편리하고 효율적으로 수행할 수 있는 환경을 제공하는 데 있다. 1.0 Introduction 운영체제는 컴퓨터 하드웨어를 관리하는 소프트웨어이다. 또한 응용 프로그램을 위한 기반을 제공하는데, 놀라운 점은 이러한 일들을 ..
· 운영체제
서론 우선 필자는 이번 글이 os를 처음 공부하면서 작성한 글이다. 학교 수업을 듣지도 않았고, 따로 강의를 보지도 않았다. 그저 운영체제 책 중 공룡책이란 놈이 가장 유명하고 바이블이라고 하길래 무작정 사서 독학하면서 쓰는 글이다. 하지만 혼자 공부하면서 내용 정리 글까지 쓰면 초반부에 무언가 잘못 이해하면 끝까지 잘못 이해한 채로 글을 써서 다른 사람에게 피해가 갈 수 있기 때문에 최대한 이 공룡책을 잘 정리했다고 생각되는 블로그들을 몇 군데 참고해 공룡책과 함께 읽고, 정리하였다. 아무쪼록, 부족한 글이지만 이 글들이 다른 분들에게 조금이라도 도움이 되었으면 좋겠다. 참고 공룡책 이 녀석이 공룡책이다! 그림과 같이 필자는 Abraham Silberschatz, Peter B. Galvin, Greg..
suhwanc
'2021/08 글 목록