드디어 말로만 들었던 운영체제 수업을 듣게 되었다...!! CS면접에서 빼먹을 수 없다, 굉장히 중요한 과목이다는 말만 들었을 뿐 무슨 내용을 배우는지 왜 배우는지에 대해서는 알지 못했다. 운영체제가 뭐야? 라고 하면 음.. 윈도우같은거? 뭐.. 안드로이드?라고 하는
운영체제는 커널과 인터페이스로 구성되어 있고 커널은 프로세스 관리와 같은 운영체제의 핵심적인 기능을 담당한다고 했었다. 그렇다면 프로세스는 뭘까?프로세스란 프로그램이 실행을 위해 메모리에 올라온 동적인 상태이다. OS관점에서의 프로세스는 하나의 작업 단위이다. 프로그램
공유 자원(shared resource)는 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 등을 말합니다. 그리고 다수의 프로세스가 이러한 한정된 공유 자원을 가지고 공동으로 작업할 때 문제가 발생할 수 있습니다. 이렇게 공유 자원 접근 순서에 따라 실행 결과가
교착상태 필요조건 지난번에는 교착상태의 정의까지 공부했습니다. 그렇다면 언제 교착상태가 발생하는지에 대해서 알아보겠습니다. 다음 4가지 조건이 모두 발생할 때 교착상태는 발생합니다. >- 상호 배제(mutual exclusion) : 한 프로세스가 사용하는 자원은 다른
동일한 조건일 때 메모리 용량이 크면 작업속도가 빨라집니다. 하지만 이는 로그 그래프의 형태로 기울기가 바뀌기 때문에 메모리의 크기가 어느 수준 이상이 되면 속도의 차이가 작아집니다. 따라서 한정된 크기의 메모리를 관리하는 것은 굉장히 중요한 일입니다.프로세스 입장에서
현재 메모리 관리의 가장 큰 특징은 물리적 메모리 크기와 프로세스가 올라갈 위치를 신경 쓰지 않고 프로그래밍 하도록 지원합니다. 이러한 메모리 시스템을 가상 메모리라고 합니다.가상 메모리 시스템의 모든 프로세스는 실제 메모리와 별개로 자신이 메모리의 어느 위치에 있는지
요구페이징 앞에서 가상 메모리의 기초에 대해서 공부했습니다. 이번에는 가상 메모리를 어떻게 효율적으로 관리하는지에 대해 자세히 공부해보겠습니다. 먼저 요구페이징에 대해서 알아보겠습니다. 프로세스의 일부만 메모리에 가져오는 이유는 무엇일까요? 바로 메모리를 효율적으로 관리하기 위해서 입니다. 메모리가 가득차면 관리하기 어렵기 때문에 적은 양의 프로세스만 ...