CS 15

[Network]4계층 TCP & UDP

Transport 계층OSI 7 계층 분류에서 엔드 투 엔드 유저들이 신뢰성 잇는 데이터를 주고 받을 수 있도록 함.그위 세션, 프레젠테이션, 어플리케이션 레벨이 데이터 전달의 걱정을 안하게 해줌어플리케이션 프로세스 사이의 논리적 통신 제공 -> 데이터를 어떻게 전송할까 결정host(라우터) 간의 논리적 통신을 제공한다? -> 네트워크 계층TCPOSI 7 계층 중 4층, 전송 계층연결 지향적, 신뢰성, 데이터 전송 보장udp 보다 속도 느림point to point웹, 이메일, 파일 전송 등에 사용흐름 제어, 혼잡 제어3-way handshaking 으로 연결, 4-way handshaking 으로 해제 -> tcp 헤더 필드 값 사용3-way handshakingTCP 의 접속 설정네트워크 연결을 설정..

CS/네트워크 2024.10.30

[OS] 개념: 프로세스, 스레드, 데드락

참고자료https://wikidocs.net/232213 07-5 교착상태의 탐지와 회복[TOC] 교착상태 탐지와 회복은 교착상태를 관리하는 또 다른 중요한 접근 방식입니다. 이 방법은 교착상태를 미리 예방하거나 회피하는 대신, 교착상태가 발생하였을 때 이를 탐지…wikidocs.net 프로세스독립된 실행 단위 -> 최소 1개의 스레드 가짐독립된 메모리 공간 -> 코드 데이터 스택 힙자원 소유 및 관리 -> 서로 다른 프로세스의 자원에 접근 x, 하고싶으면 IPC 사용멀티프로세스장점안정성 높음프로세스 간 영향 없음 단점자원 소모가 큼컨텍스트 스위칭 비용 높음 -> 캐시 메모리 초기화 등 무거운 작업 발생스레드프로세스 내 실행 단위프로세스가 할당받은 자원 공유독립된 스택만 할당 -> 그림에서 처럼 스택만 ..

CS/운영체제 2024.10.30

[Linux] 시스템 모니터링

1. 시스템 모니터링 리눅스로 기본적인 로컬의 상태들을 확인하고 컨트롤 할 수 있어야 한다. 1-1) 명령어 uname 시스템과 커널의 정보를 확인 -a 옵션을 사용하면 커널 이름, 노드 이름, 커널 릴리즈, 커널 버전, 프로세서, 하드웨어 플랫폼, 운영 체제 정보 출력 top 전체 프로세스가 OS에 대해서 리소스를 어느정도 차지하고 있는가 출력 요약 영역에 나타나는 대표적인 내용은 시간, 유저, 로드 애버리지(Load Average), CPU가 수행하는 작업의 양을 순서대로 1분, 5분, 15분 간격의 평균값으로 표시 태스크(Tasks), ==process, 현재 프로세스들의 상태를 나타내주는 영역 CPU, CPU가 어떻게 사용되고 있는지 그 사용률, 유저 영역, 커널 여역, 우선순위 설정 등, 각 영..

CS/운영체제 2022.05.13

[Linux]환경변수&bash 스크립트

1. 환경변수 환경변수란, 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는, 동적인 값들의 모임. 출처는 위키백과 이름 그대로 변수는 변수인데, os가 프로세스들을 생성할 때 참조하는 변수다. 더 쉽게 프로그램을 실행시킬 때 필요한 변수. export 이미 설정된 환경변수 확인 export [변수명]="[값]" 등호 표시 앞뒤로 공백 x 특히 path 설정시 중요 단, 이렇게 export로 줘버리면 시스템 재부팅, 로그아웃시 환경변수 값이 사라짐. 매번 다시 할당 필요 1-1) 환경변수의 영구 적용 ~/.bashrc 파일을 열어서 마지막줄에 원하는 동작을 추가 vscode 를 사용한다는 가정하에, 편집기 열어서 수정하는 명령어 code ~/.bashrc 해당 변수명의 값을 알려줌 echo $[값을 알..

CS/운영체제 2022.05.13

[Linux]nohup

1. nohup no hang up 리눅스, 유닉스에서 .sh 파일을 데몬형태로 실행시키는 프로그램 ✨ nohup으로 실행시키면 nohup.log 생성 데몬(daemon) 이란 서비스의 요청에 대해 응답하기 위해 오랫동안 실행중인 백그라운드(background) 프로세스. 유닉스(리눅스 포함) 운영체제에서 이름이 "d"로 끝나는 프로세스들이 대표적인데 inetd, httpd, nfsd, sshd, named와 lpd, containerd 등이 있다. d가 데몬을 뜻함. 2. 명령어 $nohup [실행하고싶은 프로그램 명령어] 단, nohup으로 실행시킬 파일은 반드시 chmod 755 how to redirection $nohup [실행하고싶은 프로그램 명령어] > [표준 출력을 쓰고싶은 파일명] 리다이..

CS/운영체제 2022.05.13

[web]웹 통신

INDEX 1. 클라이언트-서버 아키텍쳐 2. HTTP 통신 3. API 4. 브라우저 작동원리 5. URL & URI 6. IP 주소 & 포트 1. 클라이언트-서버 아키텍쳐 리소스가 존재하는 곳과 리소스를 사용하는 앱을 분리시킨 아키텍쳐. 위의 2단 아키텍쳐에 db를 따로 빼면 3-tier 아키텍쳐. 클라이언트는 리소스를 사용, 서버는 해당 리소스를 전달, db는 리소스를 저장하는 방식. 공통적으로 클라이언트가 인터넷을 통해서 서버에게 요청(Request) 하면 서버가 인터넷을 통해 클라이언트에게 응답(Response)한다. 이때, 인터넷을 통해 데이터를 주고받을 수 있도록 하는 규칙이 프로토콜. 프로토콜에는 몇 가지 종류가 있음 2. HTTP 통신 1번에서 서술한 인터넷을 통해 데이터를 주고받도록 하..

CS/네트워크 2022.02.17

[Linux]입출력, 표준 스트림

1. 표준 스트림 표준 스트림, 사실 리눅스에서 처음 배우는건 아니다. 프로그래밍 언어를 배우지 않고 바로 리눅스로 들어오는 경우는 잘 없으니까..?! c를 했다면 우린 이미 이걸 알고있다. 표준 입출력 이라는 이름으로 들어봤을 것이다. 그때 그 개념이랑 같다. 입력장치로부터 바이트 단위로 정보가 들어오면 프로그램이 처리해서 출력장치로 보내는 이 일련의 과정을 스트림이라고 표현할 뿐이다. 이게 프로그램 언어로 가면 표준 입출력이 되는거고, 유닉스 환경에서는 표준 스트림이다. + ) 이게 옛날에 어려웠던 이유는 각 디바이스 별로 설정이나 소통방식이 달랐던 것을 중간에서 조율해야하니 어려웠지만 그걸 os가 추상화 라는 개념을 도입해 디바이스를 파일로 관리하는 방식을 취해 쉬워졌다. 즉, 이것과 관련한 명령어..

CS/운영체제 2022.02.11

[Linux]패키지&프로세스

1. 패키지 윈도우에서 말하는 .zip, .msi 프로그램을 다운받고 실행시키려면 필요한 잡다한 파일들이 많은데 그걸 하나하나 따로 받기는 힘드니, 한번에 받을 수 있게 묶어놓는은것. 1-1. 구성 프로그램 파일 프로그램 설치 파일 프로그램 설치 설명서 프로그램에 대한 정보를 담은 파일 패키지 안에는 하나의 프로그램이 정상적으로 설치되고 동작하기 위한 모든 파일이 압축 그중에는 프로그램에 대한 정보를 담은 파일이 있는데, 프로그램 A를 설치하기 위해 프로그램 B가 필요하다는 정보도 함께 담겨있다. == 디펜던시 패키지를 이용해 프로그램을 설치하면, 패키지에 포함된 정보를 이용해 프로그램 B를 먼저 설치하고 나서 프로그램 A를 설치합니다. 1-2. 종류 소스 패키지 바이너리 패키지 1) 소스패키지 소스 코..

CS/운영체제 2022.02.10

[os]운영체제

전에 썼던 글 그대로 이사왔습니다. 혹시 타임라인이 안맞다면 그것 때문입니다. Reference -Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau, Operating Systems: Three Easy Pieces, http://pages.cs.wisc.edu/~remzi/OSTEP/ , chapter 04 Operating Systems: Three Easy Pieces Blog: Why Textbooks Should Be Free Quick: Free Book Chapters - Hardcover - Softcover (Lulu) - Softcover (Amazon) - Buy PDF - EU (Lulu) - Buy in India - Buy T-shirt -..

CS/운영체제 2022.02.10

[Linux] 리눅스 디렉토리 구조

리눅스 디렉토리 구조 정리ver. 다른 포스팅에 \, / 차이가 뭘까 궁금하다고 올렸는데 디렉토리 구조에 대해 공부하다 알았다. 윈도우 기준 \, 리눅스 기준 / 였다. 1. 디렉토리 구조 1) 트리 2) 대부분 리눅스 파일시스템 표준 "FSSTND" 준수 3) 디렉토리들의 구분 기준은 명령어의 종류, 성격, 사용 권한 등이 있음. 2. 디렉토리 종류와 특징 / : 최상위 디렉토리인 루트 디렉토리, 일반 데이터 저장 x +) /root랑 다르다 /bin : 기본 명령어들이 있는 디렉토리 /boot : 리눅스 부트로더 저장, /etc/lilo.conf에서 지정한 커널 부팅 이미지 파일들 위치 /dev : 시스템 장치 파일 저장, 연결된 장치들 정보 볼 수 있음. +) 왜 장치파일 인가 리눅스에 장치를 마운..

CS/운영체제 2022.02.09