본문 바로가기

컴퓨터 공학/운영체제15

Chapter 9. 메인 메모리 - 2부 안녕하세요 파피몬입니다! 운영체제 9단원에 대해 공부해 보았습니다. 1부입니다! Abraham Silberschatz의 Operating System Concepts 10th edition과 학부 수업을 듣고 정리한 내용입니다. 오개념이 있다면 알려주세요~~ 2부에서는 1부에서 알아본 연속 메모리 할당의 한계점을 페이징을 통해 극복해 나가는 과정을 그립니다! 기존의 연속 메모리 할당에서는, 프로세스의 물리 주소 공간이 연속적이어야 한다. 이는 단편화 문제를 야기했다. 하지만 페이징이 도입되면서, 외부 단편화와 압축의 필요성을 피할 수 있게 되었다. 운영체제와 하드웨어의 도움이 모두 필요한 페이징을 하나씩 알아보자. 기본 방법 물리 메모리를 frame, 논리 메모리를 page라는 이름으로 같은 사이즈의 블.. 2020. 12. 1.
Chapter 9. 메인 메모리 - 1부 안녕하세요 파피몬입니다! 운영체제 9단원에 대해 공부해 보았습니다. 1부입니다! Abraham Silberschatz의 Operating System Concepts 10th edition과 학부 수업을 듣고 정리한 내용입니다. 오개념이 있다면 알려주세요~~ 1부에서는 현재 운영체제로 가는 역사 정도로 생각하면 될 것 같습니다. 이렇게 발전해서 페이징과 VM이 등장했구나의 초석을 다지는 내용입니다. 기본 하드웨어 CPU에서 직접 접근할 수 있는 장치는 메인 메모리와 각 처리코어에 내장된 레지스터다. 따라서 실행되어야 하는 명령어들은 CPU가 접근할 수 있도록 메인 메모리에 갖다 놔야 한다. 만약 메모리에 없다면 CPU 접근 전, 해당 명령들을 메모리에 옮겨놔야 한다. 또한 메인 메모리에는 병행 실행을 위.. 2020. 12. 1.
Chapter 8. 교착 상태 - 2부 안녕하세요 파피몬입니다! 운영체제 8단원에 대해 공부해 보았습니다. 2부입니다! Abraham Silberschatz의 Operating System Concepts 10th edition과 학부 수업을 듣고 정리한 내용입니다. 오개념이 있다면 알려주세요~~ 1부에서 교착 상태의 개념을 알아보고 처리 방법으로 예방, 회피, 탐지, 복구 방법이 있다고 했다. 예방까지 알아보았고 이제 2부에서 회피, 탐지, 복구에 대해서 알아보자! 1부에서 살펴본 예방 방식은 장치 이용률(utilization), 시스템 총 처리율(throughput)을 감소시킨다. 이를 개선시켜야 하는데... 생각해보면 각 스레드의 요청과 방출에 대한 완전한 순서를 파악하고 있다면, 스레드가 미래의 교착상태를 일으킬 것을 예상하여 대기시킬.. 2020. 11. 18.
Chapter 8. 교착 상태 - 1부 안녕하세요 파피몬입니다! 운영체제 8단원에 대해 공부해 보았습니다. 1부입니다! Abraham Silberschatz의 Operating System Concepts 10th edition과 학부 수업을 듣고 정리한 내용입니다. 오개념이 있다면 알려주세요~~ 다중 프로그래밍 환경에서는 여러 스레드들이 한정된 자원을 사용하기 위해 경쟁할 수 있다. 앞서 살펴본 세마포 같은 경우엔 자원을 할당해 줄 수 없다면 해당 스레드를 대기 상태로 변경해 저장해 두고 있었다. 하지만 여기서 문제가 발생하는데, 대기 중인 스레드들이 평생 대기해야 한다면 어찌해야 할까? 한 스레드가 요청한 자원들이 다른 스레드들에 의해 점유되어 있고, 그들 역시 다른 스레드가 점유 중인 자원을 대기 중이라면, 아주 단단히 꼬인 상황이 발생.. 2020. 11. 18.
Chapter 7. 동기화 예제 안녕하세요 파피몬입니다! 운영체제 7단원에 대해 공부해 보았습니다. Abraham Silberschatz의 Operating System Concepts 10th edition과 학부 수업을 듣고 정리한 내용입니다. 오개념이 있다면 알려주세요~~ 이번에는 우리 앞서 배운 동기화 도구들을 통해 고전적인 동기화 문제를 해결해보도록 하자! papimon.tistory.com/51 앞선 동기화 도구들 1부 포스팅에서 차 있는 버퍼의 갯수를 세는 count 변수의 inconsistency에 대해 알아보고 해결 방법을 알아보았다. 이제 이 문제를 Semaphore를 통해 해결해보자! 주석을 통해 동작 원리를 설명해 보았다. [소비자 & 생산자가 공유하는 자료구조] int n; semaphore mutex = 1; .. 2020. 11. 14.
Chapter 6. 동기화 도구들 - 3부 안녕하세요 파피몬입니다! 운영체제 6단원에 대해 공부해 보았습니다. 중간고사 보고 이거 저거 준비하고 과제하고 하느라 이제서야 포스팅하네요ㅜㅜㅜ 드디어 3부입니다! 아마 4부작이 되지 않을까 싶네요! Abraham Silberschatz의 Operating System Concepts 10th edition과 학부 수업을 듣고 정리한 내용입니다. 오개념이 있다면 알려주세요~~ 1,2부에서 살펴본 임계구역 문제에 대한 솔루션들은 하드웨어 기반이다. 이는 복잡하고, 응용 프로그래머는 사용할 수 없는 솔루션이다. 이번 3부에서는 Mutex Lock, Semaphore에 대해서 공부해보자! 하드웨어 기반의 솔루션(TAS, CAS 등등)을 뒤로 하고 이제 상위 수준 소프트웨어 도구를 살펴볼 차례이다! 경쟁 조건을.. 2020. 11. 13.
Chapter 6. 동기화 도구들 - 2부 안녕하세요 파피몬입니다! 운영체제 6단원에 대해 공부해 보았습니다. 우선... 2부입니다! 몇부작일지는 모르겠네용 Abraham Silberschatz의 Operating System Concepts 10th edition과 학부 수업을 듣고 정리한 내용입니다. 오개념이 있다면 알려주세요~~ 1부에서 우리는 빠른 시스템 멀티 코어 + 선점형 커널을 사용하고 있고, 프로세스 동기화를 어떤 방식으로 해결할까? 라는 질문을 던진채 마무리 했다. 이제 컴공 형님들이 어찌 해결해 오셨는지 하나씩 살펴보자. 2020. 10. 20.
Chapter 6. 동기화 도구들 - 1부 안녕하세요 파피몬입니다! 운영체제 6단원에 대해 공부해 보았습니다. 내용이 많아서 몇 부작이 될지 모르겠네용ㅜㅜ Abraham Silberschatz의 Operating System Concepts 10th edition과 학부 수업을 듣고 정리한 내용입니다. 오개념이 있다면 알려주세요~~ 우선 본격적인 내용 공부에 앞서 최호성 선생님의 강의를 잠깐 듣고 가자. 운영체제 공부하면서 계속 나오는 용어들에 대해 비유적으로 이해할 수 있게 알려주시는데, 정리하고 가면 좋을 것 같다! - 동시성: 여러 일을 여러 사람이 각자 동시에 하는 것 - 병렬성: 같은 일을 여러 사람이 동시에 하는 것 - 원자성: 감히 쪼개어 나눌 수 없는 연속된 일 - 의존성: 행위나 존립에 대해 의존 하는 것 원자성과 동기화를 화장실.. 2020. 10. 20.
Chapter 5. CPU 스케줄링 - 2부 안녕하세요 파피몬입니다! 운영체제 5단원에 대해 공부해 보았습니다. 1부에 이어서 2부 포스팅합니다! Abraham Silberschatz의 Operating System Concepts 10th edition과 학부 수업을 듣고 정리한 내용입니다. 오개념이 있다면 알려주세요~~ 1부에서 살펴본 스케줄링은 단일 처리기 코어를 가진 시스템을 가정하고 설명했었다. 근데 현실은 핸드폰에서도 멀티코어를 지원한다... 우리는 이제 다중코어의 세상에 살고 있다! 이 친구는 무엇을 다르게 고려해야할까? 다중 처리기는 두가지 방식으로 구현될 수 있다. AMP와 SMP가 바로 그것이다. AMP (Asymmetric Multi-Processing) - 마스터 처리기: 모든 스케줄링 결정, I/O 처리, 타 시스템의 활동 .. 2020. 10. 16.
반응형