[운영체제] CPU Scheduling
CS/운영체제2022. 4. 4. 12:52[운영체제] CPU Scheduling

✔︎ CPU Scheduling이란 ? CPU를 효율적으로 사용하기 위해 프로세스를 잘 배정하는 것 오버헤드와 기아현상을 줄이고 CPU 사용률을 높이기 위해 사용한다. ✔︎ CPU Scheduling Criteria 시스템 입장에서의 성능 척도 CPU 이용률(Utilization) : CPU를 이용한 수치의 백분율 Throughput : 단위 시간당 완료된 프로세스의 수 사용자 입장에서의 성능 척도 Turnaround Time : CPU를 가져온 후 다 쓰고 나갈 때까지의 시간 (프로세스가 아닌 CPU를 가져온 후 나갈 때 까지의 시간) Response Time : 작업 요청 후 응답이 오는데 걸리는 시간, ready 큐에서 최초의 CPU를 얻기까지의 시간 Waiting Time : 대기 큐에서의 대기 ..

[운영체제] IPC(Inter Process Communication)
CS/운영체제2022. 4. 4. 11:21[운영체제] IPC(Inter Process Communication)

✔︎ IPC(Inter Process Communication)란 ? 독립적 구조를 가진 프로세스 간의 통신을 가능하도록 해주는 것 프로세스가 작업 중 다른 프로세스의 공간을 침범(wirte)해 버린다면 (예를 들어 다른 프로세스의 스택을 건드리는 경우) 문제가 발생한다. 이를 비정상 공유라고 하는데 커널은 이것을 막기 위해 "Protection"을 한다. Protection이란 ? 임의의 프로세스가 다른 프로세스의 주소 공간에 접근하는 것을 금지하는 것이다. 오직 신뢰할 수 있는 커널만이 모든 프로세스의 주소 공간에 접근할 수 있도록 하며 프로세스는 커널이 제공하는 IPC 설비를 이용해 프로세스 간 통신을 할 수 있게 된다. Kernel이란 ? 운영체제 자체도 소프트웨어이므로 메모리에 올라가야 사용할 ..

[네트워킹] SSH (Secure Shell Protocol)
CS/네트워킹2022. 3. 22. 17:59[네트워킹] SSH (Secure Shell Protocol)

✔️ SSH (Secure Shell Protocol) SSH란 네트워크 프로토콜 중 하나로 컴퓨터와 컴퓨터가 인터넷과 같은 Public Network를 통해 서로 통신을 할 때 보안적으로 안전하게 통신하기 위해 사용하는 프로토콜이다. 대표적인 사용의 예는 다음과 같다. 데이터 전송 ex) 깃 허브 원격 저장소, 소스 코드를 깃헙에 푸쉬할 때 SSH를 활용해 파일을 전송한다. 원격 제어 ex) AWS와 같은 클라우드 서비스는 인스턴스 서버에 접속해 해당 머신에 명령을 내리기 위해 SSH를 통한 접속을 해야한다. SSH는 22번 포트를 사용한다. 제어의 주체가 되는 컴퓨터에는 SSH Client가 설치되어 있어야 하며 제어의 대상이 되는 원격지 컴퓨터에는 SSH Server가 설치되어 있어야 한다. 윈도우..

[네트워킹] ICMP (Internet Control Message Protocol)
CS/네트워킹2022. 3. 22. 17:17[네트워킹] ICMP (Internet Control Message Protocol)

✔️ ICMP (Internet Control Message Protocol)란 ? 3계층 (Network Layer)의 IP 프로토콜은 오로지 패킷을 목적지에 도달시키기 위한 내용들로만 구성되어 있다. IP 패킷 경로에 문제가 있거나, dst 호스트에 문제가 있는 경우 패킷 전달을 의뢰한 src 호스트에 이러한 사실을 알려야 하지만 IP에는 에러에 대한 처리 방법이 명시되어 있지 않다. 즉, IP는 전송 상태에 대한 관리가 이루어지지 않는 신뢰할 수 없는 프로토콜이다. 이러한 IP 프로토콜의 단점을 보완하기 위한 프로토콜이 ICMP 프로토콜이다. ✔️ ICMP 기능 ICMP는 IP 프로토콜을 이용해 IP 패킷 전송 중 에러가 발생하면 에러 발생 원인을 알려주며 해결 가능한 힌트 제공 Error-Repo..

[네트워킹] FTP (File Transfer Protocol)
CS/네트워킹2022. 3. 22. 16:12[네트워킹] FTP (File Transfer Protocol)

✔︎ FTP (File Transfer Protocol)이란 ? FTP란 서버와 클라이언트 사이에서 TCP/IP를 통해 파일을 송수신하기 위해 고안된 프로토콜이다. 파일 전송 전용 서비스라는 특징과 인터넷을 통한 송수신을 위해 고안된 프로토콜이기 때문에 동작 방식이 단순하고 직관적이며 사용 방법이 간단하고 빠른 속도로 많은 파일을 주고 받을 수 있다. 빠른 파일 송수신만을 목적으로 두고 고안되었기 때문에 보안 부분에서는 상당히 취약하다. HTTP 프로토콜을 통해 접속되는 WWW(Word Wide Web) 방식에서 많이 사용한다. FTP를 사용하기 위해서는 서버가 존재해야 하며 클라이언트와 이어주는 통신 포트가 생성되어야 한다. 21번 포트 : 데이터 전송을 제어하기위한 신호 20번 포트 : 실제 데이터 ..

[네트워킹] Proxy (프록시)란 ?
CS/네트워킹2022. 3. 18. 12:22[네트워킹] Proxy (프록시)란 ?

✔️ Proxy(프록시)란 ? Proxy(프록시)란 '대신', '대리' 라는 의미를 가진다. 보안 분야에서 주로 보안상의 이유로 직접 통신할 수 없는 두 점 사이에서 통신할 경우 중계기로서 대리로 통신하는 기능을 가리켜 '프록시'라고 하며 중계 기능을 하는 것을 '프록시 서버'라고 부른다. ✔️ Proxy 서버의 특징 클라이언트와 서버 사이에서 프록시 서버가 중계할 때 클라이언트는 프록시 서버를 '서버'로서 인식하고 서버는 프록시 서버를 실제로 요청을 보낸 '클라이언트' 개념으로 인식한다. 즉, 실제 클라이언트와 서버 사이에 "프록시 서버"의 존재를 모르는 것 처럼 동작한다. 프록시 서버는 프록시 서버에 요청된 내용들을 캐시를 이용해 저장해둔다. 캐싱 후에 캐시 안에 있는 정보를 요구하는 요청에 대해서는..

image