전체 글

CPU 스케줄링 알고리즘CPU 이용률을 극대화하여 최적의 효율로 사용하기 위한 알고리즘이다.  CPU 스케줄러는 프로그램이 실행될 때, CPU 스케줄링 알고리즘에 따라 프로세스에서 해야 하는 일을 스레드 단위로 CPU에 할당하는 역할을 한다.  CPU 스케줄러가 스케줄링을 결정하는 상황실행 상태에서 대기 상태로 전환될 때 (I/O wait 등)실행 상태에서 준비 상태로 전환될 때 (interrupt 발생 등)대기 상태에서 준비 상태로 전환될 때 (I/O 완료 등)종료될 때 (Terminate) 위 상황들에서 1, 4번의 경우 반드시 스케줄링이 발생하여 새로운 프로세스를 선택하는데 이때 비선점형 스케줄링이 발생한다. 반면, 선점형 스케줄링은 CPU 독점을 방지하거나, 프로세스의 우선순위를 반영하고, 모든 ..
"프로세스와 스레드"프로그래밍을 입문하고 언어를 공부하다보면 한 번쯤은 듣게된다.프로세스와 스레드는 매우 유사하므로 둘의 차이점을 이해하는 데 어려움을 느낀다.프로세스와 스레드는 독립적인 실행 순서이지만프로세스가 서로 다른 메모리 공간에서 실행되는 반면 동일한 프로세스의 스레드는 공유 메모리 공간에서 실행된다는 차이가 있다.   프로그램과 프로세스프로그램은 특정 작업을 수행하기 위해 작성된 일련의 지침이다.일반적으로 디스크나 다른 저장 매체에 저장되는 정적 엔터티이며, 프로그램은 실행될 때 프로세스가 된다. 프로그램을 실행하면 운영체제는 해당 프로그램을 디스크에서 시스템 메모리로 로드하고 실행한다.프로그램의 실행중인 인스턴스를 프레세스라고 하며, 각 프로세스에는 자체 메모리 공간과 시스템 리소스가 있다...
메모리CPU가 직접 접근할 수 있는 기억장치이며,프로세스가 실행되려면 프로그램이 메모리에 올라와야 한다. 프로그램 실행 시 필요한 주소, 정보들을 저장하고 가져다 사용할 수 있게 만드는 공간이다.  메모리의 특징 지역성 데이터 접근이 시간적, 혹은 공간적으로 가깝게 일어나는 것.시간적 지역성 : 특정 데이터가 한 번 접근되었을 경우, 가까운 미래에 또 한 번 데이터에 접근할 가능성이 높음.공간적 지역성 : 엑세스 된 기억장소와 인접한 기억장소가 엑세스 될 가능성이 높음. 지역성 원리를 이용하여 계층으로 구성된다.위로 갈수록 접근시간 감소하고 속도가 증가하며, 비용이 비싸지고 용량이 적어진다.기억용량, 접근시간, 사이클 시간, 기억장치 대역폭, 가격 등으로 성능이 결정된다.  메모리 계층(기억장치 계층) ..
운영체제컴퓨터 하드웨어와 응용 프로그램 간의 상호작용을 관리하고 제어하여 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스이다.  운영체제의 역할1. CPU 스케줄링과 프로세스를 관리    CPU 소유권 할당과, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리한다.2. 메모리 관리    한정된 메모리를 어떤 프로세스에 얼만큼 할당할지 관리한다.3. 디스크 파일 관리    디스크 파일을 어떠한 방법으로 보관할지 관리한다.    (파일 생성, 수정, 제거, 공유, 백업, 복구, 주기억장치와 보조기억장치간의 파일전송 등)4. I/O 디바이스 관리    I/O 디바이스와 컴퓨터 간에 데이터를 주고받는 것을 관리한다.   운영체제의 구조 인터페이스 (GUI, CUI)사용자가 전자장치와 상호작용할 수 있도록 하는..
대칭키(비공개키) 암복호화에 사용하는 키가 동일한 암호화 방식. 송수신자는 서로 공유된 대칭키를 가지고 통신한다. 특징암복호화에 서로 동일한 키가 사용되기 때문에 키를 공개하지 않는다. 알고리즘DES, 3DES, AES, SEED, ARIA장점비대칭키 암호화 방식에 비해 속도가 빠르다.단점키를 교환해야 하기 때문에 송신 측에서 수신 측에 암호키를 전달할 때 노출되거나 탈취당할 수 있다.사람이 증가할수록 각자 키를 교환해야 하기 때문에 관리해야할 키가 많아진다.  비대칭키(공개키) 암복호화에 사용하는 키가 서로 다른 암호화 방식. 따라서 송수신자 모두 한쌍의 키(개인키, 공개키) 를 갖고있게 된다. 더보기공개키 : 모든 사람이 접근 가능한 키개인키(비밀키) : 사용자 본인만 가지고 있는 키 특징A의 공개키..
로드밸런싱로드밸런싱 (Load Balancing) 은 '부하분산'이라고도 하며 두 대 이상의 컴퓨터에 작업 부하를 분산하는 것입니다. 임영웅 콘서트 티켓을 예매할 때 한꺼번에 많은 트래픽이 몰려 서버가 그 트래픽을 감당하기 힘들어 부하를 받게 된다.이를 방지하기 위해 동일한 서버를 여러 대 구비시켜 트래픽을 분산처리할 수 있다. 하지만 단순히 여러대의 서버를 구비한다고 모든 서버에 적절히 트래픽을 분산시킬 수 있는 것이 아니다. 여러대의 서버 중 트래픽이 몰리는 서버가 존재할 수있고 이렇게 되면 서비스 장애가 생길 가능성이 커진다.즉, 한 서버에 트래픽이 몰리는 것을 방지하고 여러 서버에 적절히 분산시켜주는 기술이 로드밸런싱이다.    로드밸런싱의 종류 로드밸런싱에는 L4 로드밸런싱과 L7 로드밸런싱이 ..
흐름 제어수신 측이 송신 측보다 데이터 처리 속도가 빠르면 문제 없지만, 송신 측의 속도가 빠를 경우 문제가 생긴다. 수신 측에서 제한된 저장 용량을 초과한 이후에 도착하는 패킷은 손실될 수 있으며,만약 손실된다면 불필요한 추가 패킷 전송이 발생한다.따라서 송신측의 패킷 전송량을 수신측에 따라 제어해야 한다. 흐름 제어는 위와 같이 송신 측과 수신 측의 TCP 버퍼 크기 차이로 인해 데이터 처리 속도 차이를 해결하기 위한 기법이다. 전체 전송 과정Application Layer : 송신측 Application Layer 가 소켓에 데이터를 입력.Transport Layer : 데이터를 세그먼트로 감싸고 Network Layer 에 전달.수신측 노드로 세그먼트가 전송되며 동시에 송신측의 Send Buffe..
출발지에서 목적지로 데이터를 전송할 때 사용하는 통신 방식에는 유니캐스트, 브로드캐스트, 멀티캐스트를 사용한다. 유니캐스트, 브로드캐스트, 멀티캐스트는 네트워크에서 통신을 하는 방식에 따라 구분하는데1 : 1이냐, 전부를 대상으로 하냐, 그룹을 대상으로 하냐에 따라 차이가 있다. 1 : 1 👉 유니캐스트로 출발지와 목적지가 1 : 1로 통신. 1 : 전부 👉 브로드캐스트로 동일 네트워크에 존재하는 모든 호스트가 목적지. 1 : 그룹 👉 멀티캐스트로 하나의 출발지에서 다수의 특정 목적지로 데이터 전송.   MAC 주소기기간 통신에 기본적으로 사용되는 주소이며 다른 이름으로 하드웨어 주소라고도 한다. 네트워크 상에서 서로를 구분하기 위해 Device 마다 할당된 물리적 주소를 의미한다.즉, 하드웨어를..
백수왕
비전공자에서 주니어 개발자까지