본 내용은 경희대학교 소프트웨어융합대학 이성원 교수님의 수업을 바탕으로 작성하였습니다.ConceptA, B, C가 있다면 A->C로 가기 위해서는 Network Layer가 필요하다.줄이 여러 개 있으므로 패킷을 목적지로 전달하는 것이 Network Layer에서 가장 중요한 역할이다.TCP/IP 중 IP(inter networking protocol)라는 소프트웨어가 Network Layer에서 현재 가장 많이 사용되는 소프트웨어다.internet은 IP라는 소프트웨어를 네트워크 계층에서 사용하는 기술들의 집합체네트워크 계층을 흔히 host to host communication이라고 이야기를 한다. 많은 host들이 있을 때 우리가 원하는 곳으로 잘 보내는 통신을 말함host는 컴퓨터router는 메..
application process나 thread가 사용하는 모델은 세마포어와 모니터 + mutex lock세마포어는 바이너리와 카운팅이 있는데 바이너리는 mutex lock 형태와 같게 사용할 수 있다.Classical Problems of SynchronizationBounded-Buffer ProblemReaders and Writers ProblemDining-Philosophers ProblemBounded Buffer Problembusy-wait을 하게 됨. CPU 낭비. CPU를 사용하지 않고 block 상태로 waiting 하도록 해야 함. 세마포어를 통해 구현critical section 보호가 되지 않고 있다.(M.E가 안되고 있음)세마포어 변수 mutex로 critical secti..
앞에서 배운 내용들은 CPU관리6장 7장은 프로세스 간 혹은 스레드 간 동기화IPC의 두 가지 모델 shared memory, message passingshared memory 모델에서 데이터를 write 했는지 알아야 데이터를 가져갈 수 있음 그래서 shared memory를 사용하는 프로세스 간 동기화 메커니즘(동기화 툴)을 kernel이 제공해야 한다.shared memory는 데이터를 직접 쓰고 읽기 때문에 오버헤드가 제일 작다.message passing은 커널에다가 쓰고 커널에서 읽어가야 하니까 데이터를 복사하는 오버헤드가 존재한다. 상대적으로 느림Synchronization스레드(프로세스)들이 서로 협력하면서 동작, 실행순서를 조정멀티 스레드나 멀티 프로세스가 공유 데이터를 접근하는 상황에..
CPU burst : 명령어들의 집합을 수행하는 구간I/O burst : I/O가 끝나기를 기다리는 구간CPU burst vs I/O burstCPU-bound process : CPU burst 가 길고 I/O burst 가 짧은 프로세스 (딥러닝)I/O-bound process : I/O burst가 길고 CPU burst 가 짧은 프로세스 (hwp, mp3)사용자와 상호작용하며 동작하는 프로그램들은 I/O-bound process (우리가 사용하는 것들 대부분)과학 계산하는 시뮬레이션 프로그램들은 CPU-bound process현재 많이 쓰이는 프로그램들은 대부분 CPU-burst가 작은 프로그램들Dispatcher스케줄링: Ready 상태에 있는 프로세스 중에 실행시킬 프로세스를 고르는 것디스패..
Processunix/linux가 처음 나왔을 때는 프로세스만 있었다.OS의 성능을 개선시키는 방향으로 발전프로세스는 Heavy-weight, 너무 많은 것들을 가지고 있고 child 프로세스를 만들기 위해 그것들을 복사해 놔도 잠깐 실행되고 끝나는 경우가 많음운영체제에서 프로세스를 만드는데 들어가는 오버헤드가 10이라면 실제 수행은 3~4 정도만 하고 끝나버림개선을 하기 위해서 나온 개념이 스레드Thread Concept: Key Idea 스레드는 프로그램을 통한 execution path다.모든 프로그램은 적어도 하나의 스레드를 가지고 있다.a는 프로세스 하나당 실행 path가 하나씩 밖에 없음b는 프로세스는 하나인데 그 안에 실행 path(스레드)를 여러 개 만든 것스레드는 한국어로 실 싱글 스레드..
Program vs process 프로그램 디스크 또는 파일 시스템에 저장된 실행파일 메모리로 로딩돼서 실행됨 프로세스 메모리로 로딩돼서 실행되는 주체 실행과 스케줄링의 기본적인 단위 프로세스는 id라는 이름이 붙여지는데, PID는 정수 프로그램의 실행 주체, 프로그램의 인스턴스 Process Address Space 프로그램의 address space가 0번지부터 위로 올라감 제일 밑 부분에는 텍스트(코드) 세그먼트, CPU의 명령어들이 순차적으로 실행된다. 데이터 세그먼트 프로그램이 실행되는 동안 항상 메모리를 차지하고 있는 변수들(static data or 전역변수)이 저장되는 곳 함순 내부에 저장되는 지역변수들은 스택에 저장, 함수가 수행될 때 일시적으로 생겼다가 함수가 끝나면 사라짐 힙은 동적메..
본 내용은 경희대학교 소프트웨어융합대학 이성원 교수님의 수업을 바탕으로 작성하였습니다. Ethernet 값이 싸고 고속에서도 무리 없이 동작한다. LAN, MAN, WAN에서 흔히 사용되는 컴퓨터 네트워킹 기술 physical Layer가 바뀌더라도 Layer 2인 MAC Layer가 안 바뀌어도 됨 프레임을 만드는 작업을 하고 각 프레임은 소스와 목적지 주소를 포함 그리고 오류 검사 데이터를 통해 손상된 프레임 감지 및 폐기 Physical Layer에 CSMA/CD에 MAC이 있고 DLC인 경우 에러검출 및 복구를 거의 하지 않기 때문에 LLC라고 부르는 계층이 존재 이더넷 처음 나왔을 때 bus 많이 사용 장점 : 값이 저렴 단점 : 줄이 끊기면 통신 불가 star 장점 : 속도 빠름 단점 : 허브..
Operating System Services 가장 중요한 것은 system call, application program들이 hardware를 쉽게 사용할 수 있는 인터페이스 제공 traditional computer에서 사용했음 다양한 인터페이스 system program과 대비되는 개념은 application program 좁은 의미의 컴파일 : .c를 .o 즉, 오프젝트 파일로 만드는 일을 수행하는 도구, .c파일 하나당 .o파일 하나가 생김 .o파일들과 라이브러리를 합쳐서 하나의 실행파일로 만드는 작업을 링킹, 실행파일을 메모리에 올려서 실행해 주는 로더 넓은 의미의 컴파일 : 컴파일 + 링킹 trade-off 관계가 있다. static linking : 많은 프로그램이 로더에 의해 메모리에 올..