목록CS (59)
센로그
◆ Synchronization프로세스들은 concurrently하게 실행된다.인터럽트가 언제든지 발생할 수 있으므로, 한번에 끝까지 실행되는 경우는 별로 없다. 그런데 concurrent하게 동작하는 여러 스레드가 공유 메모리에 있는 하나 데이터에 접근하면, 누가 먼저 접근하느냐에 따라 결과 값이 매번 달라질 것이다. (Race Condition) 따라서 이런 경우 일관성이 보장되도록 동기화해주는 작업이 필요하다. ◆ Race Condition프로그램을 실행한 결과가 deterministic하지 않고, 각각의 instruction들의 실행되는 순서에 따라서 바뀌는 경우를 race condition이 있다고 한다. 여러 개의 스레드 데이터가 레이싱을 하고있는데스레드의 상대적인 속도(실행 순서)에 따라서..
※ 참고 포스팅 https://grace7040.tistory.com/34 Chapter 23. TRANSPORT LAYER : UDP AND TCP ◆ Process-to-Process Delivery 데이터 링크 계층은 node-to-node (hop-to-hop) 네트워크 계층은 host-to-host 전송 계층은? process-to-process 서버-클라이언트 의 관계를 갖고 있음. (서버-클라이언트 프로세스는 서로 grace7040.tistory.com ◆ Socket 소켓은 L3과 L4 사이의 커뮤니케이션 인터페이스이다. API. 어플리케이션은 소켓을 열고, 소켓에 정보를 주어서 상대 어플리케이션까지 가고.. 하면서 통신함. 소켓을 사용한 프로그램들은 bidirectional을 지원한다. ..
◆ [L4] Transport 계층 에러 검출 및 복구, 흐름 제어, 혼잡 제어 process-to-process 통신 이제 메세지는 L3을 거쳐 내 컴퓨터 안에 들어왔다. 그럼, 컴퓨터 위에서 실행중인 많은 프로세스들 중에 어느 프로세스로 보내야 할지를 결정해야 할 것임. → L4에서 port 번호를 통해 process를 식별하도록 한다. (L3은 ip주소를 통해 host를 식별했고, L2는 MAC주소를 통해 node를 식별했다.) 포트는 운영체제 위에 올라온 여러 프로그램과 운영체제 사이의 연결 구멍으로, 포트 번호를 통해 어떤 프로세스를 유일하게 식별할 수 있다. 포트 번호는 0~65,535까지 존재하는 16비트 정수이다. - 0~1,02..
◆ CPU Schedulingready queue에 있는 프로세스들 중, 어느 것을 cpu에 올릴 것인지 결정하는 것.CPU 스케쥴링의 목적은, 멀티 프로그래밍. (한 프로세서 안에서 여러 프로세스를 동시에 돌리는 것.)즉, CPU가 쉬지 않고 열심히 돌아갈 수 있도록 관리하는 것이다. (CPU 효율 극대화) 정확히 말하면, 커널 스레드가 OS에 의해 스케쥴링 된다.(그러나 프로세스 스케쥴링 이라는 말도 스레드 스케쥴링과 혼용한다.) ◆ 프로세스 실행 - CPU burst , I/O burst프로세스 실행되면 CPU를 쓰는 시간(CPU burst) 및 I/O를 대기하는 시간(I/O burst)이 번갈아가면서 일어난다. CPU burst : CPU만 연속적으로 쓰면서 instruction을 실행하는 일..
◆ Thread프로세스 내에서 실행되는 작업의 최소 단위여러개의 작업을 동시에 처리하고자 할 때 스레드를 사용함. 하나의 프로세스가 동시에 한 작업만 수행하는 것을 싱글 스레드,하나의 프로세스가 동시에 여러 작업을 수행하는 것을 멀티 스레드라고 한다. 하나의 스레드는 무조건 하나의 코어에서만 돌아간다. ex)스레드 동작 예시 싱글스레드의 경우, task1이 끝나고 나서 task2를 돌림.멀티스레드의 경우, task1과 task2가 동시에 작동함 ◆ Thread 구성요소스레드는 다음 요소들을 개별적으로 갖고 있다.Thread ID - 각자의 식별자Program Counter - 각자의 진행 흐름 표시해야 하기 때문Register Set(메모리의) Stack 영역 - 어떤 함수를 호출하는지가 다르기 때문..
◆ Process실행중인 프로그램(Program in execution)을 의미함.※ 프로그램 카운터란?다음에 실행할 instruction의 주소를 가지고 있는 레지스터 ex)폰 노이만(CPU, Memory)구조 안에서 프로세스를 보자. Disk 안에 있는 chrome.exe 프로그램(컴파일된 기계어들이 들어있는 binary file)을 실행하면,chrome은 프로세스로써 메인 메모리에 올라감.메인 메모리의 구조는 보통 byte array(8bit)로 이루어져있으며, byte단위로 address가 붙어있다.여기에 chrome이 가지고있던 data와 instruction들이 올라간다.이때 CPU 캐시는 메모리에 올라온 instruction들의 일부를 캐싱(카피해옴)하고,CPU는 캐시로부터 빠르게 instr..