본문 바로가기

운영체제11

[운영체제] 후기 운영체제에 대한 정리를 끝마치게 되었다처음 운영체제에 대한 큰 틀을 잡을 때는 혼공컴운(강민철) 책을 사용해서 기반을 다졌고, 이후 나머지 심화적인 내용은 박태순교수님의 Operating Systems: Internals and Design Principles(William Stalling), Operating System Concepts(Silberschatz, Abraham) 책으로 공부했다. 컴퓨터공학과 박태순교수님의 운영체제 강의는 세종대 대표 명강의로 유명하다 수강신청이 굉장히 치열해 과연 잡을 수 있을까 했지만 1순위 우선순위를 갖고 재빠르게 신청하니 다행히 운 좋게도 쟁취할 수 있었다 학습 분위기는 학생들 수준도 굉장히 높고 치열했다 컴퓨터공학과와 컴퓨터공학과를 복수전공하는 학생들 중 열의 .. 2024. 7. 7.
[운영체제] ep7) Virtual Memory ㅁVirtual Memory(가상 메모리): m.m.에 프로그램의 일부만 남기고 나머지는 HDD에 적재- 현대 시스템의 99%가 가상 메모리 시스템 ※ 멀티 프로그래밍 레벨이 높을수록 좋은 시스템이다멀티 프로그래밍 레벨: 메모리에서 동시에 실행되는 프로세스의 숫자 1. OS가 프로그램 조각(resident set)을 m.m.로 가져온다- resident set: 프로그램 조각(Page들의 집합)2. 필요한 프로그램이 m.m.에 없으면 interrupt 발생!3. 필요한 프로그램을 가져오기 위해서 OS가 process를 blocked시킨다4. OS가 HDD에 I/O 읽기 요청을 한다5. HDD가 I/O 작업을 처리하는 동안 다른 프로세스가 디스패치된다6. 아까 blocked된 프로세스를 다시 ready 상.. 2024. 7. 2.
[운영체제] ep6) Memory Management 7단원은 8단원 VM(Virtual Memory)를 위한 빌드업이라 생각하면 된다메모리 관리에 있어서 중요한 요점 3가지- Relocation: 기준이 1000번지면 모든 주소에 1000을 더해 Relocation이 필요하다[Relative Address + Base Resister -> Physical Address]- Protection: 무슨 일이 있어도 프로그램을 실행할 때는 이 프로그램이 자기에게 할당된 메모리 영역 외에는 Access 하면 안 된다- Sharing    메모리를 관리하는(나누는) 방법 2가지1. Fixed Partitioning- Equal-size partitions- Unequal-size partitions  2. Dynamic PartitioningExternal fra.. 2024. 7. 2.
[운영체제] ep5) Concurrency: Deadlock and Starvation ㅁDeadlock의 발생 조건 4가지① Mutual Exclusion(상호배제)② Hold-and-Wait③ No preemption(비선점)④ Circular Wait: 여러 프로세스가 자원을 할당받은 후, 다른 프로세스가 점유하고 있는 자원을 추가로 요청하면서 서로 대기하는 상황이 순환 형태로 이루어지는 것  ㅇ자원 할당 그래프(Resource Allocation Graphs)       ㅁ데드락 해결방법 3가지1. Deadlock Prevention: 자원할당 규칙을 만든다(사전에 차단)④ Circular Wait를 깨기 위해 자원에 번호를 매긴다 - 자원을 요청할 때 번호 순서대로 요청 - 낭비 多, 실제로 사용은 x데드락이 발생하면 큰일이 나는 시스템이 아닌 이상 데드락 prevention보다는.. 2024. 6. 30.
[운영체제] ep4-2) Concurrency: Mutual Exclusion and Synchronization Concurrency 방안 3가지1. Software Approaches - 알고리즘을 잘 설계2. HW instruction을 이용3. OS가 제공하는 동기화 툴 이용 (e.g. 세마포, 모니터)저번 1번에 이어 2번에 대해서 알아보자 2. HW instruction을 이용 - 수정이 불가능하며 중간에 인터럽트로 중단되지도 않는다 HW적으로 움직인다2가지 HW instruction이 있다① Compare & Swap Instruction: 비교하고 같으면 swap// word: 어떠한 저장공간의 주소// 같다면 word를 newval로 swap한다// compare_and_swap 실행 전 word에 저장되어 있던 값을 returnint compare_and_swap(int* word, int test.. 2024. 6. 29.
[운영체제] ep3) 스레드(thread) [컴퓨터 구조] ep5) 스레드 파트를 복습하자스레드: 실행의 단위- 하드웨어적 스레드: 하나의 코어가 동시에 처리하는 명령어 단위- 소프트웨어적 스레드: 하나의 프로그램에서 독립적으로 실행되는 단위 https://claremont.tistory.com/entry/%EC%BB%B4%ED%93%A8%ED%84%B0-%EA%B5%AC%EC%A1%B0-ep5-CPU-%EC%84%B1%EB%8A%A5-%ED%96%A5%EC%83%81-%EA%B8%B0%EB%B2%95 [컴퓨터 구조] ep5) CPU 성능 향상 기법세계 곳곳의 과학자들과 엔지니어들은 조금이라도 더 빠른 CPU를 만들기 위해 혈색이다 이번 장에서는 CPU 설계 기법과 명령어 처리 기법들에 대해 알아보겠다 ㅇ클럭 "컴퓨터 부품들은 클럭이라clarem.. 2024. 4. 8.
[운영체제] ep2) 프로세스(process) ㅁ프로세스(process): 실행 중인 프로그램 (실행/스케줄링의 단위 및 자료구조)보조기억장치에 저장된 프로그램을 메모리에 적재하고 실행하는 순간, 그 프로그램은 프로세스가 된다그리고 이 과정을 "프로세스를 생성한다"라 표현한다   + 프로세스를 직접 확인하는 방법- Windows: 작업 관리자 프로세스 탭 - UNIX체계: ps 명령어   포그라운드(foreground) 프로세스: 사용자가 볼 수 있는 앞 공간에서 실행되는 프로세스vs백그라운드(background) 프로세스: 사용자가 보지 못하는 뒷 공간에서 실행되는 프로세스이 백그라운드 프로세스 중에서 사용자와 상호작용하지 않고 혼자 묵묵히 일을 수행하는 프로세스들을 Windows에서는 서비스(service)라 하고 UNIX체계에서는 데몬(daem.. 2024. 4. 8.
[컴퓨터 구조] 후기 컴퓨터 구조에 대한 복습 및 정리를 끝마치게 되었다회사 프리랜서일과 병행하느라 조금 디뎠지만, 그래도 이전에 한 번 깊숙이 배웠던 내용인지라 빠르게 진행할 수가 있었다세종대 전자정보통신공학과에는 스파르타라는 별명을 가지신  SoC 권위자 이성주교수님이 계신다 (지금은 반도체시스템공학과에 가신 걸로 알고 있습니다) 그 교수님의 컴퓨터구조론 강의평을 보면 컴퓨터 구조에 대해 아주 깊고 빠삭하게 배울 수 있지만 체감상 6~9학점에 스파르타식으로 너무 너무 힘들다는 강의평들이 여럿 적혀있다솔직히 보고 좀 겁이 났지만 컴퓨터 구조가 CS에 있어서 근간이 되는 중요한 과목이라 생각하여 수강신청 때 1순위로 신청을 하였다 솔직히 이제 와서 생각해 보면 수강하는 동안에는 많이 힘들었다 컴퓨터시스템구조론(William .. 2024. 3. 5.
[운영체제] ep1) 운영체제의 큰 그림 운영체제(Operating System): 실행할 프로그램에 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램(컴퓨터에서 가장 중요한 프로그램이다)여기서 자원이란 시스템 자원으로써 프로그램 실행에 마땅히 필요한 요소들을 말한다 e.g. CPU, 메모리, 보조기억장치, I/O, 패킷, 파일 등 운영체제를 잘 알려면 커널의 개념을 확실하게 알고 가야 한다ㅇ커널(kernel): 운영체제의 핵심 서비스를 담당하는 부분메모리에는 커널 영역과 사용자 영역으로 나뉘어져 있으며, OS는 커널 영역에 적재되어 자원 할당과 프로그램 실행에 도움을 준다 앞으로 운영체제를 지칭할 때는 특별한 언급이 없는 이상 커널을 지칭한다고 생각하면 된다    대부분의 운영체제 서비스는 커널에 있지만 커널에 포함되지 않.. 2024. 3. 3.