해당 글은 경희대학교 조진성, 허선영 교수님의 강의 자료 및 내용을 정리한 글입니다 개인적으로 공부하며 작성된 글이라 잘못된 부분이 있을 수 있습니다! 오류가 있다면 알려주세요 Background Synchronization이 왜 필요할까요? Process가 concurrent하게 실행될 수 있기 때문입니다. 여러 프로세스가 하나의 core에 의해 관리되는데, 번갈아가면서 실행되기 때문이죠 이때 여러 프로세스가 공유하는 메모리에 접근하면서, Data inconsistency가 문제가 될 수 있는 것입니다 ▶ Race Condition 두 자동차가 race를 벌이듯이, 공유되는 data를 제어하지 않고 마구잡이로 사용하는 경우, 프로그램의 실행 결과가 instrction 실행 순서에 따라서 달라지는 Rac..
분류 전체보기
해당 글은 경희대학교 조진성, 허선영 교수님의 강의 자료 및 내용을 정리한 글입니다 개인적으로 공부하며 작성된 글이라 잘못된 부분이 있을 수 있습니다! 오류가 있다면 알려주세요 Basic Concepts Multi-programming이란 동시에 여러 program을 돌리는 것을 의미한다. 이때 CPU Utilization을 최대화하기 위해서 OS는 Kernel-level thread를 scheduled한다. 항상 명령어만이 돌아가며 CPU를 사용하는 것이 아니다! CPU 명령어 수행과 I/O 실행 시간이 반복(Cycle)되며 프로세스는 실행된다. I/O brust 동안은 CPU를 사용하지 못하고, Process는 waiting 상태이다 각 Process마다 유형이 다르며, CPU-bound proces..
해당 글은 경희대학교 조진성, 허선영 교수님의 강의 자료 및 내용을 정리한 글입니다 개인적으로 공부하며 작성된 글이라 잘못된 부분이 있을 수 있습니다! 오류가 있다면 알려주세요 Thread ↓ Process 는? ↓ 더보기 Heavy-weight address space, OS resources, Hardware execution state 등을 포함하기 때문에 새로운 process를 생성하는 것은 costly한 작업이다! 또한 여러 Process가 데이터를 공유하는 경우 massage passing, shared memory를 사용하는데 이는 구현 및 관리가 여럽고, process 사이의 context-switching이 계속해서 발생하면 성능 저하가 일어나는 문제점을 가진다. Thread는 LWP(L..
해당 글은 경희대학교 조진성, 허선영 교수님의 강의 자료 및 내용을 정리한 글입니다 개인적으로 공부하며 작성된 글이라 잘못된 부분이 있을 수 있습니다! 오류가 있다면 알려주세요 Process Program 프로그램이란, Disk에 저장된 파일과 같은 Passive entity Process 실행 중인 프로그램. 메모리에 로드된 프로그램의 인스턴스 program counter와 연관된 리소스의 집합을 가진 Active entity Disk에서 binary file 형태의 프로그램을 실행함 Main memory로 program code가 올라감. 이는 Byte array CPU가 이를 처리하게 됨 이때, CPU-memory 간의 처리는 느리다 따라서 일부를 Cache하여, 복사하여 처리하는 방식임 ▶Proc..