본문 바로가기

전체 글111

네트워크 스터디 1주차 - 네트워크 전반, 데이터 송수신 네트워크란 여러 개의 시스템이 연결되어 있는 통신망. 인터넷은 이 통신망 중 하나. 인터넷은 문서, 그림, 영상과 같은 여러가지 데이터를 공유하도록 구성된 세상에서 가장 큰 전세계를 연결하는 네트워크 (즉 네트워크가 조금 더 포괄적인 개념). 인터넷이라는 통신망을 바탕으로 웹 서비스(www)를 이용하는 것. 인터넷 통신망 안에서 웹 말고도 다른 서비스를 이용할 수도 있음. 네트워크는 1) 크기에 따른 분류 2) 연결 형태의 따른 분류가 있을 수 있음 크기에 따른 분류 네트워크는 크기에 따른 분류와 연결 형태에 따른 분류가 있음. 크기로 구분하면 LAN, WAN, MAN 등이 있음. LAN(Local Area Network)은 가까운 지역을 하나로 묶은 네트워크. WAN은 멀리 있는 지역을 한데 묶은 네트.. 2024. 2. 11.
운영체제 스터디 7주차 - Mutex, Semaphore, Monitor, Liveness 저번 주차까지 프로세스(혹은 스레드) 동기화의 해결 방법으로 소프트웨어적으로는 피터슨 알고리즘, 하드웨어적으로는 test-and-set 등으로 atomic variable을 만드는 방법을 보았다. https://kyumcoding.tistory.com/102 운영체제 스터디 6주차 - 동기화 Background 프로세스들이 concurrent하게 데이터에 접근하여 수정을 할 경우 데이터 정합성(Data Inconsistency - 어떤 데이터들의 값이 서로 일치함)가 깨질 수도 있다. 서로 협력하는 프로세스의 요청들을 kyumcoding.tistory.com 이번에 알아볼 방법은 조금 더 하이레벨적인 솔루션들에 대해서 알아볼 예정이다. Mutex는 가장 심플한 동기화 툴이고(2개), Semaphore는 .. 2024. 1. 31.
운영체제 스터디 6주차 - 동기화 Background 프로세스들이 concurrent하게 데이터에 접근하여 수정을 할 경우 데이터 정합성(Data Inconsistency - 어떤 데이터들의 값이 서로 일치함)가 깨질 수도 있다. 서로 협력하는 프로세스의 요청들을 순서대로 처리해주는 것을 보장해줘야지 데이터의 정합성을 보장하는 것이 가능. 데이터의 무결성(Integrity of Data)도 고려해줘야 하는데 아래와 같은 환경이기 때문 1) 동시(Concurrent) 처리를 하는 경우: Instruction stream 중간의 어느 포인트에서 인터럽트가 발생해 컨텍스트 스위칭이 발생할지 모르고, 멀티 코어 프로그래밍을 하는 경우 컨텍스트 스위칭되었다고 하더라도 다른 코어에서 해당 프로세스를 할당하여 처리할 수도 있음 2) 병렬(Parall.. 2024. 1. 26.
운영체제 스터디 5주차 - CPU 스케쥴링 Basic Concepts CPU 스케쥴링은 멀티 프로그래밍(여러 개의 프로세스를 동시에 돌려서 궁극적으로 CPU의 활용도를 높이는 것)의 가장 기초적인 부분. 대부분의 프로세스의 작업은 CPU burst보다는 I/O burst 시간이 더 길다. 이는 프로세스가 I/O 처리를 위해 대기 상태에 들어가는 상황이 많다는 뜻이다. 만약 멀티 프로그래밍을 하지 않는다면 이 대기 시간 동안 CPU가 놀게 되므로 CPU 사용률이 급격히 떨어진다. 멀티 프로그래밍은 이 유휴 시간 동안 컨텍스트 스위칭 등으로 CPU가 프로세스를 계속해서 돌리게 하여 CPU의 가동률을 올린다. CPU 스케쥴링이란 유휴 상태가 되었을 때 어떤 프로세스로 컨텍스트 스위칭할 것인지 선택하는 과정이라고 볼 수 있다. Preemptive vs .. 2024. 1. 24.