| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- java
- synchronized
- spring security
- 일급 컬렉션
- lombok
- Spring
- OAuth 2.0
- Google OAuth
- builder
- 일급 객체
- factory
- Dependency Injection
- Volatile
- Today
- Total
목록분류 전체보기 (179)
HJW's IT Blog
Cooperating Process란? Cooperating Process(협력 프로세스)란 여러개의 프로세스가 서로 상호자용하여 동시에 실행되는 경우를 말한다. 협력 프로세스는 여러 자원을 서로 공유하게 되며 서로 접근하고 수정할 수 있게 된다. 파일, 데이터베이스, 공유 메모리 등등 여러 프로세스가 공유자원을 동시에 사용하게 될 때, concurrency problem(동시성 문제) 가 발생하게 된다. 이러한 문제를 해결하기 위해 critical section을 한 프로세스가 사용중일때, 다른 프로세스가 사용하지 못하도록 하는 SW적 알고리즘이 필요하다. 장점 Cooperating process는 여러개의 컴퓨터, 네트워크에 분산되어 실행 될 수 있다. 즉, 작업의 처리 속도를 높일 수 있다 Coop..
TCP란 전송된 데이터를 신뢰성 있게 receiver 측에 전송을 보장하는 프로토콜이다. TCP 특징 Point to Point one sender one receiver Connection-Oriented 신뢰성이 높다 Handshaking 과정 필요 Pipelined Flow/Congestion Control을 위해 Maximum Segment Size Full Duplex Daa 양방향 통신이 가능 TCP는 다음으로 이루어져 있다. Pipelined Segments Cumulative ACK Single Retransmission Timer Triggered by Timeout Duplicate ACK TCP Retransmission Scenario ACK가 손실되었을 때 이다. Host A 가 ..
Pipelined protocol이란 sender 가 여러개의 패킷을 한번에 보내는 것을 말한다. 두가지 종류가 있는데 이는 Go-Back-N 과 Selective Repeat 방식이 있다. Go-Back-N Sender 는 N unakced 패킷을 가질 수 있다. Receiver는 cumulative(누적) ack만 보낸다 받은 데이터에 gap 이있을시 보내지 않음 Sender는 가장 오래된 unacked 패킷에 대한 타이머가 있고 timeout시 모든 unacked 패킷을 보낸다 버퍼를 window라 칭하고, 버퍼의 크기를 window size라 칭한다. 버퍼의 시작점: send base 다음 패킷 번호: next_seq_num 다음은 Go-Back-N 의 FSM이다. Window size는 4라고 ..
UDP란? UDP란 User Datagram Protocol의 약자로, 데이터를 데이터그램 단위로 처리하는 프로토콜이다. 각 segment는 독립적으로 처리됨 UDP는 비 연결형 프로토콜로, 필요한 최소한의 것들만 갖춘 프로토콜이다. 그렇기에 데이터가 손실될 수도, 순서가 뒤바뀌어 전송될 수도 있다. (그럼에도 사용하는 이유는 빠르기 때문. 즉, 신뢰성 < 연결성이 더 중요한 서비스에서 사용 ex) streaming) 비연결형이기 때문에 handshake 과정이 없다. UDP는 checksum을 이용해 최소한의 오류검출을 한다 Flow Control: 데이터를 송신하는 곳과 수신하는곳의 데이터 처리속도를 조절하여 수신자의 오버플로우를 방지. 송신측이 수신측의 처리 속도에 맞게 데이터를 전송할 수 있도록 ..
Transport Services 와 Protocols 전송 프로토콜은 데이터의 전송을 관리하는 프로토콜 이다. 전송 프로토콜은 송신측에서 수신측으로 데이터를 전송하며 이 과정에서 데이터의 손실, 에러, 순서 등을 관리한다. 전송 프로토콜은 end-system에서 실행되어야 한다. 송신측: 메세지를 segment로 나누어 network layer에 전달 수신측: 받은 segment를 메세지로 결합, application layer에 전달 전송 프로토콜의 종류로 TCP 와 UDP가 있다 TCP: congestion control, flow control, connection setup UDP: 최선을 다해 전달하지만 보장 x Data Encapsulation/Decapsulation PDU(Protocol..
소켓이란 컴퓨터 네트워크에서 두 개의 프로세스 간에 통신을 가능하게 하는 SW적 장치이다. 클라이언트 - 서버 통신에서 사용되며, 일종의 문 이라고 볼 수 있다. 두개의 프로세스는 이 문을 통해 데이터를 주고 받으며 IP 주소와 포트번호를 사용하여 연결한다. 소켓 프로그래밍에는 두가지 종류가 있다 1. UDP: Unreliable Datagram 2. TCP: Reliable, byt stream-oriented UDP Sever와 Client 간에 연결이 존재하지 않는다 즉, no handshaking 송신자는 목표 IP 주소와 포트 #를 각 패킷에 부착한다 UDP 사용시 전송되는 데이터가 손실되거나 뒤죽박죽되어 전송될 수 있다 TCP Client 는 서버와 연결되어야 한다 서버가 켜져있어야 함 서버가..
Context Switching Context Switching 이란 CPU를 할당 받고 있던 프로세스 하나를 멈추고 다른 프로세스를 시작하는 것이다. Context Switching 은 다음 상황에서 발생한다 Priority Inversion(Process Scheduling) Interrupt Multitasking Context Switching 이 일어날때, HW register들은 나중에 복구를 위해 모두 저장된다 Scheduler 종류 Long-Term(Job Scheduler) Job들 중 하나를 골라 memory에 load Process가 CPU를 떠날때만 실행된다 Executes Infrequently 요즘 컴퓨터는 잘 쓰지 않음 Medium-Term 시분할 시스템에선 long-term ..
Frame pointer 와 stack pointer 는 컴퓨터 아키텍처에서 스텍을 관리하기 위한 포인터 이다. Stack은 데이터를 임시로 저장하는 메모리 구조로 LIFO 구조를 가지고 있다. 스텍의 데이터를 처리할 때, 가장 위에 있는 데이터를 우선적으로 처리한다. 각 함수는 매개변수 및 지역변수를 일시적으로 저장하는 지역 메모리가 있는데, 이를 Stack frame 이라 하며 process의 스텍에 할당된다. 함수 내부의 지역변수에 접근하기 위한 코드는 Frame Pointer 에 대한 오프셋으로 생성된다 Frame Pointer는 함수 내에서 변경이 불가능 하다 Frame Pointer Frame Pointer 는 함수 호출시 생성되는 프레임을 가리키는 포인터이다. 함수가 호출될 때, 프레임 포인..
Process 란? 프로세스는 OS에서 실행중인 프로그램을 의미한다. 즉, 컴퓨터에서 실행중인 어떤 특정 프로그램이 메모리에 로드되어 실행되고 있는상태를 의미한다. 프로세스는 OS의 프로세스 스케줄러에 의해 CPU 시간을 할당받아 실행된다. 이때, 필요한 자원을 사용하며 고유의 PID를 가지게 된다. 프로세스는 실행상태(execution state) 를 가지게 된다. Process Creation/Termination 프로세스 생성 이유 User log on User starts a program OS 가 서비스를 위해 생성 프로그램이 다른 프로세스 생성 프로세스 제거 이유 작업 완료 에러 유효하지 않은 실행 자원 부족 Two State Process Model 현제 프로세스의 상태를 두가지로 나눈다 -..
P2P Architencture P2P 아키텍쳐에서 항상 켜져있는 서버는 없다. End system 끼리 직접적인 연결을 한다 Peer들 끼리는 일시적으로 연결되어 있으며 동적으로 할당된 IP 주소가 바뀔 수 있다. ex) BitTorrent, Skype File Distribution: C-S vs P2P Client-Server C-S 구조에서 서버는 순차적으로 N개의 파일을 보내야 한다. 하나의 파일을 보내는데 걸리는 시간: F/Us 총 N(F/Us) 의 시간 각 클라이언트는 각자 파일을 다운로드 해야 한다 dmin = 클라이언트 최소 다운로드 속도 클라이언트 최소 다운로드 시간 = F/dmin P2P P2P 구조에서 서버는 최소 하나의 파일을 올려야 한다 파일 하나 올리는데 걸리는 시간 = F/U..