BOAZ/엔지니어링

1. CS 기초정리

공부중인학생 2022. 8. 18. 23:19

운영체제

 

우리가 컴퓨터를 사용할 때 하드웨어를 관리하고 응용 프로그램과 하드웨어 사이의 인터페이스 역할을 하여 시스템 동작을 제어하는 소프트웨어가 운영체제입니다. 운영체제는 시스템의 자원과 동작을 관리하여 프로그램에 대한 서비스를 지원하는 역할을 해줍니다.

 

- 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있게 인터페이스를 제공해주는 시스템 소프트웨어

 

 

 

1. 프로세스(process): 프로세스란 실행 중에 있는 프로그램을 의미합니다. 즉 운영체제로부터 메모리 공간을 할당받아 실행 중인 것입니다.

 

2. 프로그램(program): 파일 단위로 저장 장치에 저장되어 있고 실행되지 않은 코드 상태입니다. 

 

3. 스레드(thread): 프로세스를 구성하는 독립적인 실행 단위입니다. 

 

 

스레드는 프로세스에서 실행 제어만 분리한 부분인데 같은 프로세스 내 다른 스레드와 메모리 영역을 공유하며 각 스레드는 스택 영역을 통해 독립적인 실행 흐름을 가집니다. 문맥 교환으로 인한 자원 낭비를 최소화합니다.

 

    - 프로세스는 컴퓨터 자원을 분리해서 쓰지만 스레드는 공유하여 속도와 효율적인 면에서는 스레드가 더 좋습니다.

    - 하지만 프로세스 안에서 공유되는 변수에 두 스레드가 동시에 접근하게 되면 오류가 나기 때문에 주의해야합니다.

 

멀티스레드는 한 프로세스 안에서 여러 개의 스레드를 동시에 수행하는 것을 말합니다. 우리가 유튜브 영상을 다운받으면서 재생할 수 있는 이유가 바로 멀티스레드를 사용하기 때문입니다.

 

 

 

 

Network

 

네트워크란 두 개 이상의 노드가 서로 데이터를 공유할 수 있게 하는 통신 환경입니다. 대표적인 예로 인터넷이라는 전 세계를 연결하여 데이터를 공유할 수 있는 네트워크 통신망이 존재합니다.

 

- LAN(Local Area Network): 근거리 네트워크로 넓은 범위에서 사용할 수는 없지만 소규모 공간 안에 고속 통신회선이 가능합니다. WAN보다 빠른 통신속도를 가지면 보통 Peer - to - Peer 형태입니다.

 

- WAN(Wide Area Network): 광대역 네트워크 망으로 LAN과 LAN을 다시 하나로 묶은 것으로 소규모 LAN들을 묶어 서로 다른 지역에서도 통신할 수 있게 만든 것입니다. 

 

연결 형태에 따라서 

 

- Star형: 노드 추가가 쉽고, 개별 링크 장애 시에도 네트워크 영향이 적어 고속 네트워크에 적합하지만 중앙 노드 장애 시 전체 네트워크도 멈추고 노드 증가에 따라 네트워크 복잡도가 증가한다는 점이 있습니다.

 

- Mesh형: 완벽하게 이중화되어있어서 장애에 강하고 많은 양의 데이터 처리에도 문제가 없지만 구축 비용이 큽니다.

 

 

 

네트워크 TCP/UDP

 

 

네트워크 - HTTP

 

HTTP는 Hyper Text Transfer Protocol의 약자로 클라이언트의 요청이 있을 때만 서버가 응답하여 해당 정보를 전송하고, 곧바로 연결을 종료하는 방식입니다.

 

단방향 통신 / 비실시간 / 요청을 보낸 후 서버의 응답을 기다리는 애플리케이션 개발에 주로 사용됩니다.

 

 

socket 통신

 

'BOAZ > 엔지니어링' 카테고리의 다른 글

2. Docker  (0) 2022.08.26