728x90
반응형

CS 8

운영체제 3강

이 포스팅은 반효경 운영체제 강의 를 듣고 정리하는 글이다. fork, exec실습 코드는 깃허브에 있다. 프로세스 생성 부모 프로세스는 1개만 존재하고, 자식 프로세스들을 생성한다. copy on write (cow) 기법 주소 공간 자식은 부모의 공간을 복사한다. 자식은 그 공간에 새로운 프로그램을 올린다. 유닉스에서는 fork 시스템 콜 을 통해 부모 프로세스와 똑같이 복사한다. 수행 부모 자식이 공존하며 수행되는 모델 자식이 종료될 때까지 기다렸다가 수행되는 모델 프로세스 종료 프로세스가 마지막 명령을 수행한 후 운영체제에게 이를 알린다. (exit) 자식이 부모에게 output data를 보낸다. 프로세스의 각종 자원들이 운영체제에게 반납됨 부모 프로세스가 자식의 수행을 종료시킨다. (abort..

CS/운영체제 2022.08.22

운영체제 2강 - 2

동기식, 비동기식 입출력 프로세스가 입출력이 진행되는 동안에 CPU 점유는 중요하지 않음 입출력 명령을 계속 대기하면 동기, 해놓고서 다른 작업을 수행하면 비동기 구현 1 I/O가 끝날때 까지 계속 대기해 CPU를 낭비시킴 매시점 하나의 입출력만 일어남 구현 2 입출력이 완료될 때까지 해당 프로그램에서 CPU를 빼앗음 다른 프로그램에서 CPU를 가지고 연산 수행 입출력 작업이 완료되면 해당 프로세스에 CPU할당 스레드 프로세스 내부의 CPU 수행단위가 여러개 있는것이 스레드 프로세스마다 code, data, stack 이 주어짐 CPU수행과 관련된정보는 스레드가 별도로 가지고있고, 나머지는 공유한다. 스레드의 구성 program counter register set stack 스레드의 장점 다중스레드 구..

CS/운영체제 2022.08.18

운영체제 1강

반효경 교수님의 운영체제 강의를 정리하는 포스팅 System Structure & Program Execution 1 📌 컴퓨터 시스템 구조 컴퓨터 시스템의 구조는 아래와 같다. 이미지 출처 - https://asfirstalways.tistory.com/115 컴퓨터 시스템에는 크게 중앙 처리장치인 CPU, 메모리, 그리고 외부 장치들인 디스크, 키보드 등등 으로 구분된다. 컴퓨터는 외부에서부터 데이터를 읽어와 연산을 한 후에 다시 출력해주는 방식으로 처리한다. 📌 CPU CPU는 Memory에 올라간 프로그램들의 명령들을 하나하나 읽어들여 수행하는 역할을 담당한다. I/O마저도 이 CPU가 관리하게 되면, 너무나도 많은 인터럽트가 발생하게 된다. 이런 경우에는 CPU가 효율적이지 못하다고 할 수 있다..

CS/운영체제 2022.08.11

프로세스 상태

사용자가 프로그램을 실행시키면 메모리에 올라가며 프로세스가 실행된다. 지금의 컴퓨터는 수많은 프로세스들이 실행된다. 시분할 시스템이 사용되는 운영체제에서는 여러개의 프로세스를 돌아가면서 실행한다. cpu가 병렬적으로 여러 프로세스를 막 실행시키는것이 아니라, 한 순간에 하나의 프로세스만 처리가 가능하다. 그렇지만, 그 속도가 우리가 눈치챌 수도 없을 만큼의 속도로 분할되어 실행되기 때문에 여러 프로세스가 동시에 실행되는것 처럼 느끼게 한다. 프로세스는 시분할 시스템 처리를 위한 5가지의 상태가 존재한다. 생성 이 상태는 PCB를 생성하고, 메모리에 프로그램 적재를 요청한 상태 메모리에 프로그램 적재를 승인받으면 준비상태로 넘어간다. 준비 CPU를 사용하기 위해 기다리고 있는 상태 준비 상태의 프로세스는 ..

CS/운영체제 2022.08.10

Cache

웹 캐시 웹 캐시 또는 HTTP 캐시 라고 하는데, 이 캐시는 서버와 불필요한 네트워크 통신을 줄이기 위해서 임시 저장한 정보들을 바로 뿌려주는 기술이다. 웹 캐시가 자신의 저장소 내에 요청된 리소스를 가지고 있다면, 그 요청을 가로채 원래라면 서버에서 리소스를 가져오겠지만, 리소스의 복사본(프록시) 를 통해 데이터를 가져오게 된다. 성능이 향상되는건 말할 것도 없지만, 이 리소스가 영원히 변하지 않는 것은 아니기 때문에 가지고 있던 값이 변하기 전까지만 캐시로 유지하고 더 이상은 캐싱을 하지 않아야 한다. 사설 브라우저 캐시 이 캐시는 한 사용자 전용의 캐시이다. 예로, 크롬 브라우저를 켰을때 브라우저 자체는 이 사용자만의 캐시를 고유하게 갖고 있다. 이게 사용자마다의 개개인의 캐시로 기록이 되어있기 ..

CS 2022.08.09

HTTP

HTTP란? HTTP(Hyper Text Transfer Protocol) 텍스트 기반 통신 규약으로써, 인터넷에서 데이터를 주고받을 수 있는 프로토콜입니다. HTTP는 신뢰성 있는 데이터 전송 프로토콜을 사용하는데 TCP 프로토콜에서는 데이터 송수신을 위해 클라이언트와 서버의 소켓이 연결되어 있어야 하며, 데이터가 유실되면 데이터 재전송을 요청함으로써 신뢰성을 보장합니다. 즉, 신뢰성 있는 데이터 전송이 가능하다는 장점으로 인해 HTTP, FTP, TELNET 등 대부분의 응용 계층 프로토콜의 전송 계층으로 사용 됩니다. 이렇기 때문에 인터넷의 결함이나 약점에 대한 걱정 없이 고유의 기능을 구현하는데에만 집중이 가능합니다. 웹 클라이언트와 서버 웹 콘텐츠들은 웹 서버에 존재합니다. 웹 서버는 HTTP로..

CS 2022.08.07

[네트워크] 개념정리

요즘 계속 뭔가 하나씩 연결이 되는 상황이 많다. 그래서 기분이 좀 좋다. 몰랐던 것을 조사하면 이전의 학습했던 것들이 쭉 이어진다. 오늘도 마찬가지이다.라우터란?라우터는 패킷의 위치를 추출하여, 그 위치에 대한 최적의 경로를 지정하며, 이 경로를 따라 데이터 패킷을 다음 장치로 전향시키는 장치이다. 즉, 라우터는 이름 그대로 네트워크와 네트워크 간의 경로를 설정하고 가장 빠른 길로 트래픽을 이끌어주는 네트워크 장비이다. 그냥 공유기라 생각하면 된다.이 라우터에는 단자를 꼽는게 크게 두가지로 볼 수 있는데그것이 바로 WAN과 LAN이다.WANWAN은 Wide Area Network의 줄임말로 한 집마다 인터넷 회선이 있는데 그것을 WAN으로 생각하면 되겠다. 광범위한 지역 단위로 구성하는 네트워크이다.이..

CS/네트워크 2022.08.04

[네트워크] - XSS

XSS : Cross Site Scripting사이트를 교차해서 스크립트를 발생시킴.게시판을 포함한 웹에서 자바스크립트같은 스크립트 언어를 삽입해 개발자가 의도하지 않은 기능을 작동시키는 것클라이언트 측을 대상으로 한 공격이다.게시판에서 글을 쓰는곳에 작성자가 HTML 코드를 삽입하여 글을 읽는사람의 브라우저에서 실행되게 하는 원리이다.이게 단순하게 alert()만 띄운다고 되는것이 아니라 그 스크립트 안에 엄청 긴 코드를 주입해서 무한정 창을 띄우게 하거나 악성코드를 직접적으로 받게 할수는 없지만, URL을 클릭하도록 유도하여 악성 프로그램을 다운받는 사이트로 Redirect시킨다.위험성쿠키 정보 및 세션 획득공격자는 XSS에 취약한 페이지 및 게시판에 XSS공격을 수행함으로써 해당 페이지를 이용하는 ..

CS/네트워크 2022.08.04
728x90
반응형