Category: CS

0

프로세스 스케줄링 알고리즘

목차 Thread Safe 쓰레드와 메모리구조 쓰레드 프로세스 동기화 프로세스 스케줄링 알고리즘 프로세스 상태와 스케줄러 Inter Process Communication(프로세스간의 통신) 프로세스 메모리 영역 Process (프로세스) 프로세스 스케줄링 알고리즘 프로세스 스케줄링이란? 이름에서 알 수 있듯이 프로세스 실행 순서 를 정해주는 것을 의미한다. 프로세스 실행 순서는 자원(CPU, Memory) 를 할당 받는 순서에 따라 실행된다. 프로세스 스케줄링의 목적은 Cpu나 Memory 같은 한정된 자원을 효율적으로 사용해 동일한 시간에 더 높은 처리 능력 을 갖기 위함이다. 스케줄링 알고리즘은 크게 비 선점 스케줄링 과 선점 스케줄링 으로 나뉜다. 비 선점 스케줄링 실행 중인 프로세스로 부터 CPU 자원 을 뺏어 올 수 없다. 한 프로세스에 CPU가 할당 되면 해당 작업이 끝나거나 대기상태로 전활될 때까지 CPU자원을 계속해서 차지한다. 비 신점 스케줄링으로는 FCFS, SJF, HRN 방식이 있다. FCFS(First Come, First Served) - 들어온 순서

0

프로세스 상태와 스케줄러

목차 Thread Safe 쓰레드와 메모리구조 쓰레드 프로세스 동기화 프로세스 스케줄링 알고리즘 프로세스 상태와 스케줄러 Inter Process Communication(프로세스간의 통신) 프로세스 메모리 영역 Process (프로세스) 운영체제 - 프로세스 상태와 스케줄러 시스템이 실행하고자 하는 프로세스에 CPU를 할당하는 과정 프로세스의 상태 프로세스는 Run, Ready, Wait라는 3가지 상태를 갖는다. Run CPU가 해당 프로세스를 수행하고 있는 상태 Ready 다른 프로세스를 실행하기위해 잠시 멈춘상태(실행가능한 상태) Wait 실행 불가능한 상태, 디스크를 읽거나 문자를 입력하는 등의 외부 이벤트가 발생할 때까지 멈춰있는 상태이다. Running Process가 어떤 값을 입력 받기 전까지는 Wait 상태가 된다. 스케줄러가 다른 프로세스를 선택한 경우 Running 프로세스는 Ready 상태가 된다. 스케줄러에의해 Ready 상태의 프로세스를 선택한 경우 다시 Running 상태가 된다. 값을 입력받을 경우 Wait 된 프로세스는 Ready 상태가 된다. 스케줄링이란

0

프로세스 메모리 영역

목차 Thread Safe 쓰레드와 메모리구조 쓰레드 프로세스 동기화 프로세스 스케줄링 알고리즘 프로세스 상태와 스케줄러 Inter Process Communication(프로세스간의 통신) 프로세스 메모리 영역 Process (프로세스) 프로세스의 Address Space(주소공간) 프로그램이 실행되면 Process Address Space가 할당된다. Process Address Space는 Text(Code), Data, Stack, Head 4가지 영역으로 구분된다. 프로세스가 생행되면 각 프로세스는 운영체제로부터 독립된 메모리영역을 할당 받습니다. 때문에 한 프로세스 메모리 영역에 다른 프로세스가 접근할 수 없습니다. 프로세스 메모리 영역은 Code, Data, Heap, Stack 4가지 영역으로 구분됩니다. Text(Code) 프로그램 코드가 저장되는 메모리 영역 프로그램이 실행될 때 할당 됐다가 프로그램이 종료하면 해제된다. (고정된 영역) Read Only Data

0

Process (프로세스)

목차 Thread Safe 쓰레드와 메모리구조 쓰레드 프로세스 동기화 프로세스 스케줄링 알고리즘 프로세스 상태와 스케줄러 Inter Process Communication(프로세스간의 통신) 프로세스 메모리 영역 Process (프로세스) 프로세스의 정의 Process(프로세스) 는 현재 실행중인 프로그램을 의미한다. Process Control Block (프로세스 제어 블록) 운영체제(OS) 가 프로세스를 제어 하기 위해 정보를 저장해 놓은 곳, 프로세스의 상태 정보 를 저장하는 자료구조다. 프로세스 상태 관리 와 Context Switch(문맥 교환) 을 위해 필요하다. 프로세스 ID (PID) 프로세스의 고유 번호 프로세스 현재 상태 생성, 준비, 실행, 대기, 소멸등 프로세스의 상태를 저장한다. 프로세스 Counter(PC) 다음 실행될 명령어의 주소를 저장하는 Counter CPU에서는 PC를 통해 프로세스 명령어를 실행한다. Process 생성 새로운 프로세스는 현재 실행하고 있는 프로세스가 프로세스 생성 System Call을 실행할 때만 만들 수 있다. 프로세스를 생성하는 주요 event들

0

객체 지향 3요소

컴파일 언어, 인터프리터 언어, 하이브리드 언어 객체 지향 3요소 객체 지향 설계 5원칙 SOLID 객체 지향 3요소1. 캡슐화 정보의 은닉 관련이 있는 변수와 함수를 묶는 작업 객체는 접근제어자를 이용해 외부에서 접근할 수 있는 정보 와 외부에서 접근할 수 없는 정보 를 분리해 관리할 수 있다. private : 클래스 내부에서만 접근 가능 public : 클래스 외부에서 접근 가능 protected : 자기 클래스 혹은 상속 받은 클래스에서만 접근이 가능 2. 상속 자원의 상속 자식 클래스가 부모 클래스의 모든 자원 (Field, Method) 를 물려 받는 것을 의미한다. 하나의 부모클래스는 여러개의 자식 클래스를 가질 수 있지만 그 반대는 안된다. 개발자는 상속을 통해 불필요한 코드를 줄일 수 있고 공통 자원 관리를 집중시킬 수 있다. (유지 보수가 편리하다.) 3. 다형성 여러가지 형태를 가질 수 있게 하는 특성대표적으로 오버라이딩 과 오버로딩 이 있다.

0

네트워크 - HTTP Status Code

HTTP Status Code1xx (Information) - 정보성 상태 코드 Http Status Code는 HTTP/1.1 에서 도입된 상태 코드 2xx (Successful) - 성공 상태 코드 코드 설명 200 : OK 요청 성공했음을 나타낸다. 201 : Created 요청이 성공하고 새로운 리소스가 생성됐음을 나타낸다. 202 : Accepted 요청은 성공했으나 서버가 아직 작업을 진행하지 않은 상태를 나타낸다. 204 : No Content 요청이 성공했고 Server에서 Client로 보낼 데이터가 없는 상태를 나타낸다. 3xx (Redirection) - 리다이렉션 상태 코드 코드 설명 300 : Multiple Choices 리소스의 URI가 영구적으로 이동 301 : Moved Permanently 302 : Found 303 : See Other 304 : Not Modified 307 : Temporary Redirect 308 : Permanent Redirect 4xx (Client Error) - 클라이언트 오류

0

메모리 관리

메모리 관리 기본적인 메모리 관리 swapping 가상 메모리 Page replacement 알고리즘 세그멘테이션 프로그래머들이 가장 바라는 메모리는 바로 크고 빠르고 비 휘발성인것을 원한다. Memory Manager(메모리 관리자) 메모리 계층을 관리하는 운영체제의 일부분 사용하고 있는 메모리와 사용하고있지 않는 메모리를 계속해서 추적한다. 메모리를 프로세스에 할당하고 해제한다. 프로세스의 용량이 커서 메모리에 용량이 작을 경우 메모리와 디스크를 swapping한다. 기본적인 메모리 관리 기법paging이나 swapping이 없는 단일 프로그램메모리보다 더 큰 Program의 등장프로그램이 점점 커지다 보니 우리가 사용하는 메인 메모리보다 큰 프로그램이 생겨나게 됐다.이를 해결하기 위한 방법으로 overlay와 virtual memory 방법이 나왔다.

0

네트워크 - TCP

TCP(Transmission Control Protocol) TCP 서비스 연결 지향의 신뢰성이 있는 바이트 스트림 서비스를 제공한다. 양방향 통신을 지원한다.(Full-Duplex Communication) 흐름제어와 에러제어, 그리고 혼잡제어를 제공한다.(신뢰성 있는 전송) 신뢰성 있는 전송이란? 데이터가 손실, 중복되지 않고 순서가 어긋나지 않는 전송방식 바이트 스트림 서비스란? 데이터 송 수신시 버퍼 기능을 이용해 Byte 단위로 처리

0

클라우드 서비스

클라우드 서비스 종류IaaS(Infrastructure as a Service)인프라를 제공하는 방식 - 컴퓨터를 대여해주는 거라고 생각하면 이해하기 쉽다. 아마존의 AWS, MS의 Azure, 구글의 GCP Platform as a Service플랫폼을 제공하는 방식 - IaaS 서비스에 Runtime환경까지 설정이 이미 되어 있기 때문에 Software as a Service특정 소프트웨어를 제공하는 방식 - 드랍박스, 구글 Docs, 오피스365 장점 컴퓨팅 환경을 빠르게 구축할 수 있다는 장점이 있다. 사용한 만큼만 돈을 지불하면 된다. 특정기간 트래픽이 폭주하는 경우에 자원의 리소스 추가와 삭제가 기존의 on-premise방식에 비해 용이하다. 서버를 관리하기 위한 물리적 공간과 인적 자원에 대해 신경쓸 필요가 없어진다.

0

복수의 테이블 다루기

07장 복수의 테이블 다루기UNION으로 합집합 구하기UNION으로 합집합 구하기SELECT * FROM sample71_a;+------+| a |+------+| 1 || 2 || 3 |+------+3 rows in set (0.00 sec) SELECT * FROM sample71_b;+------+| b |+------+| 2 || 10 || 11 |+------+3 rows in set (0.00 sec) 두개의 SELECT 명령을 UNION해서 합집합 구하기SELECT * FROM sample71_aUNIONSELECT * FROM sample71_b; 결과 +------+| a |+------+| 1 || 2 || 3 || 10 || 11 |+------+5 rows in set (0.00 sec)

0

데이터베이스 객체 작성과 삭제

6장 데이터베이스 객체 작성과 삭제26장 테이블 작성, 삭제, 변경CREATE TABLE로 테이블 작성하기CREATE TABLE sample62( no INTEGER NOT NULL, a VARCHAR(30), b DATE);) 결과 mysql> DESC sample62;+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| no | int | NO | | NULL | || a | varchar(30) | YES | | NULL | || b | date | YES | | NULL | |+-------+-------------+------+-----+---------+-------+3 rows in set (0.00 sec) 데이터 행 삭제 TRUNCATE TABLE [테이블명] ALTER TABLE로 테이블에 열 추가하기

0

집계와 서브쿼리

집계와 서브쿼리행 개수 구하기 - COUNTCOUNT로 행 개수 구하기 테이블 SELECT* FROM sample51;+------+------+----------+| no | name | quantity |+------+------+----------+| 1 | A | 1 || 2 | A | 2 || 3 | B | 10 || 4 | C | 3 || 5 | NULL | NULL |+------+------+----------+5 rows in set (0.00 sec) 명령어 SELECT COUNT(*) FROM sample51; 결과 +----------+| COUNT(*) |+----------+| 5 |+----------+1 row in set (0.00 sec)

0

데이터 추가, 삭제, 갱신

데이터 추가, 삭제, 갱신행 추가하기 - INSERT 명령어 SELECT * FROM sample41; 결과 Empty set (0.00 sec) 현재는 비어있는 테이블이다. sample41 열 구성 확인하기 명령어

0

정렬과 연산

정렬과 연산정렬하기 - ORDER BY 기존 테이블 mysql> SELECT * FROM sample31;+------+------+---------------------------+| name | age | address |+------+------+---------------------------+| A씨 | 36 | 대구광역시 중구 || B씨 | 18 | 부산광역시 연제구 || C씨 | 25 | 서울특별시 중구 |+------+------+---------------------------+3 rows in set (0.00 sec) age를 기준으로 테이블 정렬하기 명령어 SELECT* FROM sample31 ORDER BY age; 나이를 기준으로 테이블sample31을 정렬하였다. 결과

0

테이블에서 데이터 검색

테이블에서 데이터 검색use sample SELECT 명령어SELECT * FROM sample21; SELECT는 DML에 속하는 멸령으로 SQL에서 자주 사용된다.SELECT명령으로 데이터 베이스의 데이터를 읽어올 수 있다.*는 모든 열을 의미하는 메타문자이다.FROM은 처리 대상 테이블을 지정하는 키워드 결과+------+-----------+------------+---------------------------+| no | name | birthday | address |+------+-----------+------------+---------------------------+| 1 | 박준용 | 1976-10-18 | 대구광역시 수성구 || 2 | 김재진 | NULL | 대구광역시 동구 || 3 | 홍길동 | NULL | 서울특별시 마포구 |+------+-----------+------------+---------------------------+3 rows in set (0.00 sec) NULL은 데이터 값으로 아무것도 저장되어 있지 않은 상태를 의미한다. DESC 명령어