- Today
- Total
목록Linux (70)
프로그래밍 농장
현재 사용가능한 shell 리스트 확인하기 -> #cat /etc/shells 현재 작업중인 shell 확인하기 -> $echo $SHELL 로그인 Shell 변경 -> $cat etc/passwd | $chsh
Virtual Memory -> 하드디스크들에 있던것들도 실행되면 메모리에 올라가며 프로세스가 실행된다. -> 프로그램이 시스템상에서 항상 동시에 돌아가는것이 아니다 : 시간별로 수행하는 프로그램을 나누어보았을떄, 생각보다 많지않을것이다. -> 전체프로그램보다는 적은 메모리를 가지고있지만, 그떄그떄 필요한 메모리만 올리면 되기에 램(메모리) 자체의 크기가 클필요가 없다. -> 위와 같이 메모리에 올려주는것을 커널이 하며, 이를 메모리 메니지먼트라고하며, 이부분이 'Virtual Memory' 라고한다. - 초기의 프로세싱 방법 ( 비효율적 . . ) - Batch 프로세싱 ( 한번에 프로그램들을 묶어서 작업 ) [ 커널모드 / 유저모드 ] 이떄까지는 컴퓨터가 얼마의 용량(메모리)인지를 알고 그에 맞춰서 ..
Deadlock ? -> 프로세스들이 서로 unlock이 연상되기를 기다리면서 트랜잭션의 수행을 중단하고 있는 상태이다. ' 교착상태 ' -> Necessary conditions for deadlock ( 데드락이 생길수 있는 4가지 조건 ) : Mutuaal exclusion : 하나의 리소스를 어떤 프로세스가 장악하면 다른건 사용불가 : Hold and wait : 프로세스가 cpu를 장악시, 끝날떄까지 다른건 사용불가 : No preemption : 프로세스가 cpu를 장악중일시, 누군가 뻇는것이 불가능 : Circular wait : 리소스의 스레드가 필요로 하는 사이클이 있음 ( 서로 필요한 리소스가 다름, ( 연관이있음 ) ) -> 이 중 하나라도 만족하지못하면 쉽게 데드락이 풀림 아래그림은..
Critical section : 프로세스가 다른 프로세스와 공유하는 shared data 영역이 있다면 , 이를 크리시컬 섹션이라고 지정 -> 크리티컬센션에는 오직 프로세스가 1개만 사용될수있다. 이는 몇가지 조건이 필요하다 : Mutual exclusion : 프로세스가 하나 돌아가고 있으면, 다른 프로세스는 구동될수없다. : Progress : 크리티컬 섹션에 들어가고 싶은 프로세스들이있으면, 무조건 하나는 들어가야한다. : Bounded waiting : 하나의 프로세스는 어느정도 시간이 지나기전에 입장할수있어야한다. -> 싱글 코어 환경에서의 문제해결 : 프로세스가 돌아가고있을떄, 다른곳에서 접근을 못하게한다 ( interrupts 를 예방 ) -> 멀티 코어 환경에서의 문제해결 : 프로세스가 ..
어셈블리어 예제 위와 같을시, mov %a, c(%b) 는 a의 값을 c(%b)가 가르키는 주소값에 넣는것이다. ->13번줄의 mov1 %edi, -20(%rbp) 는, rbp의 주소값인 100에서 20을 뺸 주소에 edi의 값인 10을 넣으라는 뜻이다. ->17번줄의 imull -28(%rbp), %eax 는, rbp의 주소값인 100에서 28을 뺸 주소(72)의 값 3을 eax의 값 13과 곱하라는 뜻이다. -> 39 -> 21번줄의 add1 %edx, %eax 는, %edx와 %eax의 합을 %eax에 넣으라는뜻이다. : 결국 Address라는 공간은 데이터값들을 저장시킬수있는 메모리의 공간들이라고 이해할수있다. (어셈블리의 관점)
System calls -> os에서 자체적으로 제공해주는 프로그램 인터페이스 / os에서 제공하는 함수 os : 하드웨어를 컨트롤하는 소프트웨어 - File Open O_APPEND : 시작지점에서 파일을 오픈할떄 , 파일의 마지막부분에 추가하는것 O_CREAT : 파일이 존재하지않으면, 새로만드는것 O_DIRECTORY : 디렉토리를 여는것 O_EXEL : 이미 존재할경우 에러 O_TRUNC : 일반적인 파일일 경우, 파일을 다 지우고 처음부터 새로 씀 - Mode ( S_I 는 공통) write와 append의 차이 write는 오픈시 그냥 긴 문자열들의 나열 ->이후 풀이는 사용자의 몫 (위치지정. 등) ( 기본적으로 파일의 첫지정으로감) append 은 오픈시 앞의 내용은 보전하고 뒤부터 .. ..