일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 자바스크립트심화
- 상속
- 연습문제
- 중학수학
- 순환신경망
- 자바스크립트
- 정보처리기사실기
- 디버깅
- 자바 실습
- 머신러닝
- 컴퓨터구조
- 혼공머신
- 컴퓨터비전
- html/css
- 정보처리기사필기
- 파이썬
- SQL
- c언어
- JSP
- 개발일기
- JSP/Servlet
- 자바
- CSS
- 데이터분석
- rnn
- 중학1-1
- 오블완
- 데이터베이스
- JDBC
- 딥러닝
- Today
- Total
목록운영체제 (19)
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
드디어 마지막 장이다. 언제 이 책을 끝마치나 했는데 계속하다 보면 이런 날이 오는 것 같다. 그것도 5일 만에 말이다. 사실 4일 만에 다 끝내고 싶었으나 그건 무리였다. 5일이라는 시간 동안 컴퓨터 구조와 운영체제에 대해 정말 많은 것들을 배웠다. 이제 2~3개의 포스트만 기록하면 다 마칠 수 있을 것 같다. 파일 시스템은 파일과 디렉터리를 관리한다. 파일 시스템에 관해 본격적인 학습에 앞서 파일 시스템이 관리하는 파일과 디레터리에 대해 학습해보겠다. 이번 절에서는 파일 시스템을 본격적으로 학습하기에 앞서 파일과 디렉터리에 대해 학습해 보겠다. 파일우리가 일상적으로 컴퓨터를 이용할 때 파일 단위로 이용한다. 파일의 형식, 위치. 크기 등 파일과 관련된 다양한 정보들이 나타난다. 이러한 정보가..
다시 힘을 내서 남은 1시간 동안 공부를 진행해보려고 한다. 이 내용은 가상 메모리 두 번째 장에 추가 내용으로 실려있었던 내용이었다. 혼자서 공부를 해보려다 너무 어려워서 포기했던 부분이었다. 마침 강의가 있으니 들으면서 정리해 볼 것이다. 페이징의 이점 - 쓰기 시 복사외부 단편화 문제를 해결한다는 점 이외에도 페이징이 제공하는 이점은 다양하다. 대표적인 것이 프로세스 간에 페이지를 공유할 수 있다는 점이다. 대표적인 예시로 쓰기 복사가 있다. 계층적 페이징 여러 단계의 페이지를 둔다는 점에서 다단계 페이지 테이블 기법이라고도 부른다. 프로세스의 페이지 테이블을 여러 개의 페이지로 자르고, 바깥쪽 페이지 테이블을 하나 더 두어 잘린 페이지의 테이블의 페이지들을 가리키게 하는 방식..
14장의 마지막 장인데 이 내용도 만만치 않은 주제이다. 앞선 절에서 페이징의 기본적인 개념에 대해 학습했다면 이번 절에서는 운영체제가 수많은 페이지를 어떻게 관리하는지 학습해 볼 것이다. 이번 절에서는 요구 페이징의 개념과 페이지 교체 알고리즘, 그리고 프레임 할당에 대해 학습하며 운영체제가 이러한 기능을 어떻게 수행하는지 알아보겠다. 요구 페이징 아무런 페이지도 메모리에 적재하지 않은 채 무작정 실행부터 할 수도 있다. 이 경우 프로세스의 첫 명령어를 실행하는 순간부터 페이지 폴트가 계속 발생하게 되고, 실행에 필요한 페이지가 어느 정도 적재된 이후부터는 페이지 폴트 발생 빈도가 떨어진다. 페이지 교체 알고리즘 여기서 연속된 페이지를 생략한 페이지열이 페이지 참조열이다. 연속된 페이지를 생략하는 이유..
이어서 페이징 기법을 학습해볼 것이다. 4교시가 얼마 남지 않았으니 이 단원 학습을 빨리 마치고 싶다. 페이징에서의 주소 변환 페이지 번호는 접근하고자 하는 페이지 번호이다. 페이지 테이블에서 해당 페이지 번호를 찾으면 페이지가 어떤 프레임에 할당되었는지 알 수 있다. 변위는 접근하려는 주소가 프레임의 시작 번지로부터 얼만큼 떨어져 있는지를 알기 위한 정보이다. 논리 주소의 변위와 물리 주소의 변위 값은 같다. 가령 CPU와 페이지 테이블, 메모리 상태가 현재 아래와 같다고 해보자. 하나의 페이지/프레임이 네 개의 주소로 구성되어 있는 간단한 상황을 가정했다.CPU가 접근하게 될 물리 주소는 어디일까? 5번 페이지는 현재 1번 프레임에 있다. 그렇다면 CPU는 1번 프레임, 변위 2에 접근하..
조금 쉬었으니 다시 공부를 시작해 볼 것이다. 페이징은 현대 운영체제 메모리 관리 기법에 있어 가장 중요한 개념이라 해도 과언이 아닐 만큼 중요하다. 페이징이 왜 생겨나게 되었으며, 어떤 원리도 작동하는지 이해해 볼 것이다. 4GB 메모리가 설치된 컴퓨터로는 4GB 이상의 프로그램을 실행할 수 없다. 페이징 기법을 이용하면 물리 메모리보다 큰 프로세스를 실행할 수 있을 뿐만 아니라 외부 단편화 문제도 해결할 수 있다. 페이징이란 외부 단편화는 발생하지 않는다. 프로세스를 이루는 페이지 중 실행에 필요한 일부 페이지만을 메모리에 적재하고, 당장 실행에 필요하지 않은 페이지들은 보조기억장치에 남겨둘 수 있다. 페이지 테이블 CPU로 하여금 페이지 번호만 보고 해당 페이지에 ..
수학 공부도 마쳤고 이제 아침 공부가 3시간도 남지 않았지만 가능하면 14장 학습을 마쳐보려고 한다. 14장은 가상 메모리 단원인데 3개의 절로 이루어져 분량이 정말 많다. 차근차근 학습해 보기로 하자. 이제 고지가 얼마 남지 않았다.운영체제의 가장 핵심적인 역할을 꼽으라 한다면 프로세스 관리와 메모리 관리라 할 정도로 중요한 영역이다. 지금까지 운영체제의 프로세스 관리에 대해 알아보았다면 이번에는 큰 주제를 전환하여 운영체제의 메모리 관리 기법에 대해 알아볼 것이다. 이번 절에서는 기본적인 메모리 관리 기법인 스와핑과 메모리에 프로세스를 할당하는 방식, 그리고 연속 메모리 할당의 부작용인 외부 단편화에 대해 학습해보겠다. 지금까지는 메모리 내에 프로세스들이 연속적으로 배치되는 상황을 가정했다. 위의..
오늘의 마지막 새벽 공부를 시작해본다. 어제 오후에 낮잠을 많이 잔 관계로 오후 5시 반부터 새벽 5시가 넘도록 12시간 연속 공부를 하는 중이다. 중간에 저녁을 먹느라 30분 정도 쉬었을까 나머지는 모두 열공 중이다.앞선 포스트에서 교착 상태가 어떨 때 발생하는지에 대해서 학습했다. 운영체제는 교착 상태를 회피할 수도, 예방할 수도, 검출 후 회복할 수도 있다. 이러한 각각의 해결 방법에 대해 알아보겠다. 운영체제는 애초에 교착상태가 일어나지 않도록 교착 상태 발생 조건에 부합하지 않게 자원을 분배하여 교착 상태를 예방할 수 있다. 교착 상태가 발생하지 않을 정도로 조금씩 자원을 할당하다가 교착 상태의 위험이 있다면 자원을 할당하지 않는 방식으로 교착 상태를 회피할 수도 있다. 그리고 자원을 제약 없..
13장 교착상태에 대해서 공부해보려고 한다. 벌써 새벽 4시가 조금 넘었다. 이 단원만 마치고 오늘 새벽에는 어제 못한 수학 공부도 하고 아침 운동도 하려고 한다. 그러러면 2시간 안에 이 공부를 다 마쳐야 한다. 동시에 실행되는 여러 프로세스는 각자가 필요한 자원을 할당받아 실행된다. 그 과정에서 때로는 프로세스들이 꼼짝도 못하고 정지해 버리는 교착 상태가 발생할 수 있다. 이번 장에서는 교착 상태란 무엇인지, 운영체제는 교착 상태를 어떻게 해결하는지에 대해 알아보겠다. 교착 상태를 해결하는 것 또한 운영체제가 맡는 중요한 임무 중 하나이다. 교착 상태란 무엇이며, 그를 표현하는 자원 할당 그래프와 교착 상태의 발생 원인을 예시를 통해 학습해볼 것이다. 이렇게 교통이 마비되어 버리면 복구되기까지 오랜 ..
동기화의 개념을 익혔으니 이제 동기화 기법에 대해서 공부해보려고 한다. 이제 새벽 3시가 다 되어간다. 오늘은 철야를 하며 공부해 볼 생각이다.프로세스를 동기화하지 않으면 겉보기에 아무런 문제 없어보이는 코드도 예기치 못하게 작동될 수 있다. 이번 절에서는 동기화를 위한 대표적인 도구인 뮤텍스 락, 세마포, 모니터에 대해 학습해 보겠다. 프로세스 동기화는 어떻게 이루어질까? 어떻게 해야 임계 구역에 오직 하나의 프로세스만 진입하게 하고, 올바른 실행 순서를 보장할 수 있을까? 이제 동기화를 위한 대표적인 도구인 뮤텍스 락, 세마포, 모니터에 대해 알아볼 것이다. 뮤텍스락임계 구역 문제와 이를 해결하기 위한 동기화를 옷 가게에서 탈의식을 이용하는 것에 비유해 보자. 옷 가게에서 마음에 드는 옷이 없으면..
12장 프로세스 동기화에 대해서 학습해보려고 한다. 동시다발적으로 실행되는 수많은 프로세스는 서로 협력하기도 하고, 자원을 두고 경쟁하기도 한다. 이번 장에서는 프로세스가 동시에 실행될 때 반드시 거쳐야 할 동기화에 대해 학습해 보겠다. 그리고 동시에 실행되는 프로세스들을 올바르게 실행하기 위해서는 무엇을 고려해야 하는지도 알아볼 것이다.운영체제의 프로세스 관리 서비스 중 가장 중요한 두 가지를 꼽자면 스케줄링과 동기화이다. 이를 동기화라고 한다. 이번 절에서는 동기화란 무엇인지 개념을 정리하고, 프로세스를 동기화하지 않을 경우 발생할 수 있는 문제들을 통해 동기화가 왜 필요한지 알아보게 될 것이다. 동기화의 의미동시다발적으로 실행되는 많은 프로세스는 서로 데이터를 주고받으며 협력하며 실행될 수 있..