일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 절차적 사고
- 소프트웨어 시대
- 패킷트레이서 이용
- gensim 3.7.3 설치 오류
- 해결 방안
- 컴퓨터
- 운영체제 목적
- 딥러닝
- 출력
- 미래 사회의 단위
- 프로그래밍
- 운영체제 서비스
- 운영체제의 미래
- 뿌..
- 반복 구조 찾기
- 처리
- 순서도
- 레지스터
- 운영체제의 기능 1. 자원 관리 기능 2. 시스템 보호 3. 네트워크(통신 기능)
- 말 인용
- 기계어
- 국립과천과학관
- 운영체제의 발달 과정
- 장치에 할당할 수 없는 NET ID Broadcast주소
- 앨런 튜링
- 선택
- 겁나 많아
- 절차적 사고의 장점
- 공부정리
- 소프트웨어
- Today
- Total
hye-_
공부 요약 본문
C언어
C언어 | JAVA | 파이썬 | |
참 | 1 | true | True |
거짓 | 0 | false | False |
● 형 변환시에는 뒤 소수점 다 버림
ex) double d_value=6.15
n= (int)d_value //6이 들어가게됨 : 정수는 소수점을 포함할 수 없기 떄문에 가차없이 버림
● 출력할때에는 소수점 반올림
ex) "%3.1f", d_value //6.2가 출력됨
● "%5d" 정수형 서식문자 앞에 붙는 숫자는 오른쪽 정렬을 위한 숫자
"%3.1f" 정수자리의 3은 오른쪽 정렬을 위한 숫자, 소수자리의 1은 소수 둘째자리에서 반올림하여 첫째 자리까지만 출력
● 10진수 : Decimal %D
8진수 : Octal %o
16진수 : Hexadecimal %x // "0x11" 접두사 0(숫자) x(영문)가 붙으면 16진수의미
● 비트 이동 << //왼쪽으로 살아가기 (살아남)
>> //오른쪽으로 떨어지기 (죽음)
● C에서 ^ 는 비트간 XOR 연산을 나타낸다 //서로 다른 값에 1값
● ~ 비트반전 //공식 : 양수는 절댓값에서 +1을 해주고, - 부호를 붙여준다.
음수는 절댓값에서 -1을 해구조, + 부호를 붙여준다.
자료형 | 메모리크기 |
문자형 | ● char 1Byte (8bit) |
정수형 | ● short 2Byte ● int 4Byte ● long 4Byte |
실수형 | ● float 4Byte ● double 8Byte |
● char 부호비트 존재 // 부호비트 앞의 한자리가 0이면 양수, 1이면 음수 뜻함
unsigned char 부호비트 없음
unsigned는 2의보수로 표현해줘야 한다. [1의 보수로 바꾸고(0과1을 다 반대로) +1] 해주면 된다.
출력시 10진수로 출력해준다. //음수일경우 -붙여서 출력
● if //조건문 , for //반복문
● 출력시 변수명 확인하기
● 아스키코드 // 65 = A
●포인터 변수
v=(*p)++ //p가 가리키는 값을 v에 대입한 후에 가리키는 값을 증가
v=*p++ //p가 가리키는 값을 v에 대입한 후에 p를 증가
v=*++p //p를 증가시킨 후에 p가 가리키는 값을 v에 대입
v=++*p //p가 가리키는 값을 가져온 후에 그 값을 증가하여 v에 대입 //즉, 가리키는 곳의 값도 증가된다.
● 2차원 배열
&a+1 // a가 가지고 있는 배열의 끝 그 다음의 주소를 묻는 것
a+1 //a의 대표 행 주소에서 다음 대표행 주소를 묻는
a[0]+1 //a[0][1]
● int(*p)[3] = NULL; //3열짜리로 재구성
● int b=0
if(b && 10) // &&는 논리연산임 b에서부터 0이라서 뒤의 10까지 쳐다 보지도 않고 끝내버림
if(b & 10) //&는 비트연산임 1과 10을 and 비트연산해줘야 함
● "%3d" _ _ _ 오른쪽부터 정렬
ex)
115
1
"%d" 기본은 왼쪽부터 정렬
ex)
115
1
● int x = 0; fork(); x=1; printf("%d" ,x) //자식 프로세스 성공 // 11출력
● fork( ) 순서 // 부모(else) → 자식 (else if(pid==0))
//부모와 자식의 변수는 각각 생성, 즉 부모 자식 변수가 동일하게 변하지 않는다.
// else wait(NULL)일 경우 자식 프로세스 부터 시작
● sizeof(a[0]+1) //a의 주소값 크기를 묻는 것이다. 주소값을 저장하는 변수의 크기는 8byte이다.
// a[0] 대표주소가 들어가 있는 값에 1을 더한값의 사이즈를 묻는 의미가 된다. 즉, 101번지의 값을 묻는다.
● int ar[4][2] = {{1},2,3,4} //4행 2열 { }는 한행을 이것으로 채우겠다 라는 의미, 중갈호가 없으면 연속적으로 배치
ar[0] = 1 | 0
ar[1] = 2 | 3
ar[2] = 4 | 0
ar[3] = 0 | 0
● strcat( ) 함수 사용하려면 #include <string.h> 있어야함
JAVA
● print( ) //엔터 포함되지 않음 , print에서 +는 문자열을 연결하는 의미
println( ) //엔터 포함 뒤에 엔터가 쳐짐
● obj2.sum(obj1)으로 메소드 실행시 //obj1 멤버변수 사용하려면 . 연산자 이용 obj2는 . 사용하지 않아도 됨
● 클래스명과 똑같은 명만 생성자 // new 연산을 이용해서 생성, 초기값 할당할 때 생성자 호출
● private //해당 클래스 내부
protected //상속관계
public //아무데서나
default //같은 패키지만
● class CI extends C implements I //CI는 C라는것을 상속받았고 I형태로 인스턴스를 만들 수 있다.
● 상속받으면 사용 가능한지 메서드, 변수 지정자 확인하기
● this( )로 내부에서 옮겨져 상속클래스까지 다 호출이 끝났더라도 처음 this( )로 돌아와 그 밑의 것들도 다 수행해야 한다.
● 오버로딩된 메서드 중 실수를 받을 수 있는게 float, double 두 가지가 있으면 기본적으로 double을 사용한다.
float은 명시적으로 (float)24.8 지정되어 있을때만 사용한다.
● 상속(Inheritance), 캡슐화(Encapsulation), 오버로딩(Overloading), 다형성
● 상속관계에서 static가 붙은 메서드는 // obj.f() 호출시 A obj =new C(); A로 만들어졌기 때문에 obj.f()메서드가 C에 있더라도 A의 메서드를 사용한다. static이 없다면 오버라이딩이기 때문에 C가 호출된다.
● print( k) //영문 k가 출력되는게 아니고 변수 k가 출력되는것이니 k변수값을 확인하기
● ubstract class 같은 경우 객체를 생성할 수 없다. shape a=new shap가 안된다.
draw() 미완성 메서드를 포함할 경우 실질적으로 구현해야지 new 생성할 수 있다.
● throws Exception { ..throw e; } // 예외 e 나를 호출한 곳을 던진다. 던져도 finally는 수행한다. 던져지면 함수 호출한곳에서 cath(Exception e)로 간다. "나 에러 받았는데 내가 못처리함 니가 처리해" , "알겠어 내가 처리할게"
//만약 throw e가 없다면 호출된곳에서 catch로 안가고 이어서 수행된다. "에러가 다 처리되었으니 내 할일 마저 함"
● throw new Exception( ) //예외를 강제적으로 발생시킨다.
● 100/0 //100은 0으로 못 나눈다. 0으로 나누려고 하면 산술 연산 오류 Arithmetic Exceotion 발생함
● v1.equals(v2) // 두 내용이 같냐 ?
equals( ) //주소값이 같냐?
v1==v2 //주소값이 같냐?
● continue //다시 위로
break //멈춰 반복문 종료
● 오버로딩 //같은 이름의 메서드를 매개변수의 개수 또는 타입에 따라 여러번 정의한것
오버라이딩 // 상속 관계에서 자식 클래스가 부모 클래스의 메서드를 재정의한것
하이딩 // 상위 클래스의 static 메서드를 하위 클래스에서 같은 유형으로 다시 선언하는 것
하이딩된 메서드의 호출은 클래스 타입에 따라 결정된다.
● 1부터 100까지 더한 수는 5050
파이썬
● print( ) //기본적으로 엔터가 포함된다.
print(i, end=" ") //엔터가 없어짐
● my_list.append(4) //4를 뒤에 추가
my_list.insert(1,5) //1번 인덱스에 5 삽입
● print(my_list) // 리스트호출시 [ ] 각괄호 호출
● [시작인덱스 : 끝인덱스(미포함) :증감] //범위
// 범위 출력시 리스트 형태로 묶여서 [ ] 안에 들어간채 출력된다.
//첫 인덱스 [0]부터 시작, 뒤에서 시작시 인덱스 [-1] 시작
● ["Ksafof"] 출력시 Kasfof // 문자열만 있으니깐 [ ]말고 문자열만 출력
● result = text.split(',') //콤마로 나눠서 result에 넣는다.
● set { } //중복 허용 안한다. 정렬의 의미가 없다.
● 삭제 메서드
remove // 삭제할 요소가 없으면 에러 발생
pop // 무작위 삭제
discard //만약 삭제할 요소가 없더라도 에러 발생 하지 않음
● Intersection //교집합
Union //합집합
difference //차집합
● ( ) // 튜플 : 중복허용, 정렬의미 있다.
● range(시작숫자, 끝숫자(미포함)) //범위를 구하는 메서드
● ** //거듭제곱
// //작대기 기호 두개를 쓰면 정수값만 나오게 나누기 하는것이다. 이렇게 안하면 파이썬은 소수점까지 나오는게 있다고 함
● str( ) //string 형태로 바꾸기
● 아스키 코드
A : 65, B: 66, C:67
a : 97, b: 98, c : 99
● 문자열 비교가 아닌 하나의 요소 비교에서 동일한 요소일경우 그냥 앞에 있던게 출력된다.
문자열 비교일때에는 첫번째 글자가 동일하면 두번째 글자로 크기 비교한다.
● sort( ) //정렬 메서드 기본적으로 오름차순
sort(reverse=True) //내림차순 정렬
● 생성자 메소드를 구현할 때
_ _ init _ _
● 내장되지 않은 함수를 불러와야 할 때 사용하는 키워드
import
데이터베이스
● IP 주소체계 클래스
A 클래스 : 0 0~
B 클래스 : 10 128~
C 클래스 : 110 192~
● 사설 IP
A 클래스 10~
B 클래스 172~
C 클래스 192~
● 네트워크ID=서브넷ID=맨앞주소
네트워크 : 1의 갯수
호스트 : 0의 갯수
● 호스트는 -2 해줘야 함 브로드캐스트는 맨 마지막 주소
DCL | DML | DDL |
● GRANT SELECT ON 테이블명 TO 사용자 ● REVOKE SELECT ON 테이블명 FROM 사용자 | ● INSERT INTO 테이블명(속성명, ,) VALUES('값', '값') //삽입 ● UPDATE 테이블명 SET 바뀔값 WHERE 조건 //갱신 ● DELETE FROM 테이블명 WHERE 조건 //삭제 ● SELECT DISTINCT 학과 FROM 학생 //중복없이 검색 | ● DROP VIEW 뷰명 RESTRICT //삭제할건데, 해당 뷰가 사용중이면 삭제 못함 ● ALTER TABLE 테이블명 ADD 속성명 DATETIME //테이블에 날짜 속성 추가 ALTER TABLE 테이블명 DROP 속성명 CASCADE //테이블에 속성을 연쇄삭제 ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 //테이블에 제약조건 추가 ● CREATE TABLE 테이블명 (속성 ) CREATE INDEX 인덱스명 (컬럼명) 여기에서 AS를 사용할때에는 특정 테이블 일부분을 가져올 때 사용 ON은 그 테이블 전체에다가 인덱스를 설정하는것이다. CREATE INDEX 학생_인덱스 ON 학생(학과 ASC); ● TRUNCATE [TABLE] 회원 //회원 테이블 내용 삭제 |
● WHERE 공급자명 LIKE '신%' //신으로 시작하는
● 소재지 IN ( )
소재지 NOT IN( )
● 단가 > ALL //모두다 만족해야함
단가 > ANY //어느 한개라도 만족하면 됨
● DESC //내림차순 , ASC//오름차순
● BETWEEN 12 and 15 //12이상 15이하
● UNION ALL //합집합에서 중복 허용
UNION //합집합에서 중복 불허용
● INTERSECT //교집합
● cross JOIN // 다 조인 NULL값 안나옴
● CASCADE : 연쇄삭제
RESTRICT : 사용중이면 삭제 안함
운영체제
페이지
FIFO : 먼저 들어온 것부터 뺀다
LRU : 페이지 참조가 오래된 것을 뺀다.
LFU :빈도수가 적은 것부터 뺀다.
프로세스 비선점
FCFS (First-Come-First-Served) : 먼저 들어온 거부터 처리
SJF (Shortest Job First) : 실행시간이 짧은 것부터 처리
HRN (Highest Response ratio Next) : 경로우대사상, 우선순위구하는 식 : (대기시간 + 실행시간) / 실행시간
프로세스 선점형
SRT (Shortest Remaining Time) :실행시간이 짧은 것부터 처리
프로세스 그 외
RR (Round Robin) :시간을 슬라이스 해서 그 시간단위로 프로세스가 움직이게 된다.
디스크 스케줄링
FCFS (First Come First Served) : 들어오는 순서대로
SSTF (Shortest Seek Time First) : 여기서부터 나오는 스케줄링은 다 무조건 정렬을 해줘야 된다, 헤드 위치에서 가장 가까운 거리로 이동(이동거리에 없으면 끝과 끝으로 가지 않음)
SCAN : 엘레베이터 기법 (정렬) 끝과 끝을 신경써준다.
C-SCAN : 한쪽 방향으로만 처리한다. 즉, 한쪽방향 끝나면 그 반대방향 맨 끝으로 한번 쭉 가버린다. 이동할 때 끝 트랙까지 간다.
LOOK : SCAN 방식을 조금 개선한 방법으로 문제 제시 이동 방향에 요청이 있다면 이동하면 됨, 반대방향이 더 짧아도 이동하려고 하는 방향으로 가야함. 그리고 디스크 끝이 아닌 마지막 요청까지만 처리하고 반대방향으로 이동시작한다.
C-LOOK : C-SCNA 개선한 방법
Eschenbach 스케줄링 : 한번의 회정 시간 동안만 입출력 요구들을 처리
N-step SCAN : 새로운 요청은 다음 진행시 처리
교착상태 해결 방안 중 회복은 교착상태가 발생한 프로세스 중 희생양을 정하여 자원을 빼앗는 방식
기준은 우선순위가 낮은거, 기아상태인 프로세스
● 외부 단편화 계산시 :물리적 분할 크기가 단편화 크기가 된다.
● 기억장치 , 페이지 2, 변위(페이지 오브셋) 200
스와핑
swap in : 보조기억장치에서 주기억장치로 프로그램 이동
swap out : 주기억장치에서 보조기억장치로 프로그램 이동
● 디지털 데이터의 1과0을 위상(각도,위치)을 다르게 하여 전송하는 방식 : 위상 편이 변조 또는 PSK
● 단방향 알고리즘 : 암호화만 가능
양방향 알고리즘 : 암호화/복호화 가능
crontab 크론 표현식
리눅스 명령 : crontab
데몬 : crond
분 시 일 월 요일 명령어
* 매마다 뜻이다. 매분,매시,매요일 ( */30처럼 슬레쉬가 있는 경우에는 증분을 이야기한다. 30분마다)
월요일: 1
화수목금토 : 2-6
일요일:0
퍼미션
● rwx //사용자, 그룹, 그외
rwx.rwx.r-x // -는 권한이 없다는 뜻
111.111.101 //8진수로 바꿔주면 된다.
● chmod 765 test.txt //권한을 준다.
권한을 바꾸기 위한 명령 chmod
소유주를 바꾸기 위한 명령 chown
UMASK
● 리눅스, 유닉스를 파일,디렉토리를 만들게 되면 기본적인 권한을 가지게 된다.
// 파일은 666, 디렉토리는 777
UMASK는 권한에서 빼는것이다. UMASK가 022로 설정되었다는것은 파일이면 644가 되고, 디렉토리는 755가 된다.
이것의 파일 접근권한을 쓰라고 하면 rw-r--r-- 를 쓰면 된다.
LOC 기법
상향식 기법 // 예측치를 구하기 위한 항목 : 기대치(중간치), 낙관치, 비관치
● 라인수로 개월 구하기
총라인수 ÷ 월 평균 생산성 ÷ 프로그래머 수 = 개발에 소요되는 시간
임계 경로
프로젝트를 완료하기에 주어져야 하는 최소한의 시간 // 일정산정할때 사용
모든 경로의 수를 구해서 그 중에서 제일 오래걸리는 수가 임계경로임
가장 빠른 착수일과 가장 늦은 착수일을 구할때
구하고 자하는 단계가 임계경로상에 있다면 가장 늦은 착수일이 존재할 수 없다. 즉 여유기간이 없는것이다.
그러므로 빠른 착수일, 늦은 착수일을 구하라고 하면 일수는 동일하게 써주면 된다.
임계경로상에 없는 단계의 착수일을 구할때
● 가장 빠른 착수일은 그냥 해당 단계까지의 일수임
● 여유기간 = (임계경로) - (구하고자하는 경로상의 총일수)
● 가장 늦은 착수일 = (여유기간)+(해당 단계까지의 일수)
● ÷ // 모든 조건을 만족하는것들을 찾아서, 그 튜플내에서 만족된것을 분리해서 출력한다.
● 컴퓨터 바이러스의 대표적인 기능 : 복제, 은폐, 파괴
● 소수(prime number) 1과 그 수 자신 이외의 자연수로는 나눌 수 없는 자연수. 2, 3, 5, 7, 11 따위가 있다.
● OSI 7계층에서 종단 간 신뢰성 있고 효율적인 데이터를 전송하기 위해 오류 검출과 복구, 흐름 제어를 하는 계층은 전송 계층이다.
● 대용량 테이블을 논리적인 작은 테이블로 나누어 : 파티션
물리적인 하나의 테이블로 병합하는거 : 클러스터
떨어져있는것을 논리적으로 하나의 데이터베이스화시킨거 : 분산 데이터베이스
● 하향식 통합 : 메인 제어 모듈을 시작으로 제어의 경로를 따라 아래 방향으로 이동(통합)하면서 테스트를 진행하는 방식
깊이 우선 : 해당 모듈에 종속되어 있는 모듈을 우선 탐색
너비 우선 : 해당 모듈과 같은 레벨에 위치한 모듈을 우선 탐색
● 교착상태 : 상호배제(Mutual exclusion), 점유와대기(Hold and Wait), 비선점(Non preemption), 환형대기(Circular wait)
● 하위계층 : 물리, 데이터링크, 네트워크
상위계층 : 전송, 세션, 표현, 응용
● 데이터 웨어하우스 : 기업의 전략적 관점에서 효율적인 의사 결정을 지원하기 위해 데이터의 시계열적 축적과 통합을 목표로 하는 기술의 구조적, 통합적 환경
● 버퍼 오버플로우 공격 : 정상적인 경우에는 사용되지 않아야 할 주소 공간(메모리)이나, 원래는 경계선 관리가 적절하게 수행되어 덮어쓸 수 없는 부분에 해커가 임의의 코드를 덮어씀으로써 발생하는 취약점을 이용하는 공격
● 커널 :
모놀리식 커널 : 구현이 간단하고 속도가 빠르며, 임의 기능을 적재하여 동적으로 사용할 수 없다.
마이크로 커널 : 시스템 운영에 필요한 최소한의 기능들만을 제공하며, 사용자가 필요한 기능을 추가하여 운영체제를 확장
● Data Diet : 데이터를 삭제하는 것이 아니라 압축하고, 중복된 정보는 중복을 배제하고, 새로운 기준에 따라 나누어 저장하는 작업이다. 기업의 데이터베이스에 쌓인 방대한 정보를 효율적으로 관리하기 위해 대두된 방안으로, 같은 단어가 포함된 데이터들을 한 곳에 모아 두되 필요 할 때 제대로 찾아내는 체계를 갖추는 것이 중요하다.
● TCP에서 가장 회선이 처음 개설될 때 두 시스템 간에 정확한 메시지를 전송하기 위해 사용하는 플래그(제어 비트)가 무엇인지 영문 약어 : SYN
● 유닉스 : C언어 기반, 라이선스 비용 저렴
● IPv4 : 8비트씩 4부분 구성 32비트 주소 체계 각 자리0부터 255까지의 10진수로 표현하며 점으로 구분
● DRM : 인터넷이나 기타 디지털 매체를 통해 유통되는 데이터의 저작권 보호를 위해 데이터의 안전한 배포를 활성하거나 불법배포를 방지하기 위한 시스템
● 오라클 : true, sampling, Heuristic(추정), Consistent(일관성)