전체 글(394)
-
Chap 4. Processor
명령어 실행 순서 1. pc에서 명령어 메모리로 접근 , 명령어 가져옴 2. 레지스터 번호를 통해 레지스터 파일 접근-> 읽어옴 3. 명령어에 따라 달라짐 산술 연산 load/store 위한 메모리 주소 연산 -> load/store 위한 메모리 접근 Branch target 주소 연산 -> target 주소로 가거나 다음 명령어 실행 위해 PC+4 * Combinational element 예) AND-gate, adder, Multiplexer 등 *Sequential element - 레지스터: 회로에서 계산 중간에 데이터를 저장하는 용도 Edge-triggered: 클럭이 0에서 1로 바뀔 때 값을 업데이트 -> 클럭 신호가 바뀔 때 레지스터에 보관하던 값으로 업데이트 레지스터에 쓸 때 -> wr..
2023.05.26 -
비스마스킹
집합을 쉽게 표현할 수 있다. 집합에 원소를 추가,삭제하는 등 다양한 연산을 빠르게 수행 가능. 해당 인덱스에 해당하는 비트가 1이면 원소가 포함, 0이면 원소가 불포함 예) { A, B, C, D, E, F, G } 집합이 있을때, 총 7개의 원소가 존재하므로 우리는 7개의 비트로 이 집합을 표현할 수 있다. 즉, 각 원소마다 비트를 하나씩 대응시켜서 원소가 존재한다면 1, 존재하지 않다면 0으로. { A } 라는 부분집합은 64 = 1000000(2) 로 표현하고 { C, F } 는 18 = 0010010(2) 로 표현됨. 원소 추가하기 현재 상태 cur이 있을 때, p번 원소를 추가한다고 할때, cur에서 p번 비트를 1로 바꿔줘야 한다. a | b 비트연산자를 사용. cur = cur | (1
2023.05.08 -
주어진 배열을 원소들의 합이 같은 두개의 하위집합으로 분할가능한가?
조건: 배열의 원소들이 양수인 경우 구하는 단계 1. 배열의 원소들의 합을 계산한다. 2. 합계가 홀수라면-> 합이 같은 두개의 하위집합이 있을 수 없다. 짝수라면-> sum/2를 계산하고 합이 sum/2인 배열의 하위 집합을 찾는다. dp를 사용하여 해결하기 1. 원소들의 합이 짝수인지 확인 2. (sum/2) + 1 * (N+1) 크기의 2차원 배열 part[ ][ ] 선언 // N은 주어진 배열의 원소 개수 3. part[i][j] 에서 i는 원소들의 합, j는 합 i를 만들 수 있는 원소들의 개수 4. part[i][j]의 경계 조건 : part[0][i]는 합이 0이 되는 경우 -> 빈 배열이면 가능하므로 true로 설정 (i는 0이상 n이하) part[i][0]은 합이 i가되는 원소의 개수가 ..
2023.04.27 -
인텔리제이 단축키
주석 단축키 (window 기준) ctrl + / : 한줄씩 주석적용 ( // ) ctrl + shift + / : 여러줄 한번에 묶어서 주석 처리 ( /**/ )
2023.04.27 -
5. 프로세스 동기화
1. 프로세스 간 통신 1-1. 통신의 종류 프로세스 내부 통신 하나의 프로세스 내에서 스레드 사이 통신 전역 변수나 파일을 이용 프로세스 간 통신 같은 컴퓨터 내 여러 프로세스 사이 통신 공용 파일 또는 운영체제가 제공하는 파이프를 사용 네트워크 이용한 통신 여러 컴퓨터가 네트워크로 연결되어 있을 때 통신 소켓을 이용 1-2 통신 방향에 따른 분류 양방향 통신 데이터를 동시에 양쪽 방향으로 전송할 수 있는 구조 예) 소켓 통신 반양방향 통신 양쪽 방향으로 전송할 수 있지만 동시 전송은 불가능하고 특정 시점에 한쪽 방향으로만 전송 예) 무전기 단방향 통신 한쪽 방향으로만 데이터를 전송할 수 있는 구조 예) 파이프, 전역 변수 1-3 통신 구현 방식에 따른 분류 동기화를 지원하는 통신 방식 데이터를 받는 ..
2023.04.14 -
4. CPU 스케줄링
1. 스케줄링의 개요 CPU 스케줄러 : 여러 프로세스의 상황을 고려하여 CPU와 시스템 자원의 배정을 결정 고수준 스케줄링 전체 시스템의 부하를 고려하여 작업의 개수를 조절 저수준 스케줄링 어떤 프로세스에 CPU를 할당할지, 어떤 프로세스를 대기 상태로 보낼지 결정 중간 수준 스케줄링 중지와 활성화로 전체 시스템의 활성화된 프로세스 수를 조절하여 과부하를 막음 2. 스케줄링 시 고려 사항 2-1 선점형 스케줄링과 비선점형 스케줄링 선점형 스케줄링 실행 상태에 있는 프로세스의 작업을 중단시키고 새로운 작업을 시작할 수 있는 방식 문맥 교환의 오버헤드가 많다. 비선점형 스케줄링 그 프로세스가 종료되거나 자발적으로 대기 상태에 들어가기 전까지는 계속 실행되는 방식 과거의 일괄 작업 시스템에서 사용하던 방식 ..
2023.04.14