기록을 남기자

Computer Science 76

카테고리 설명
  • Multiple Processes 최신 운영체제 설계의 핵심은 여러 프로세스 를 관리하는 것이다. 시스템이 프로그램을 1개만 실행한다면, OS가 복잡할 이유가 없다. ⇒ 시스템이 여러 프로그램을 동시에 실행하려고 하기에 문제가 발생하고 이를 해결하기 위해 OS가 복잡해지는 것이다. 여러가지 프로그램을 실행시킨다고 할 때 사용하는 용어가 세가지 존재한다. 1. Multiprogramming 메모리를 잘라서 여러 프로그램들을 메모리에 집어 넣고, 이 프로그램들을 번갈아가면서 실행한다. → 이 경우, CPU의 개수는 상관이 없다 . 메모리 안에 여러 프로그램이 들어가서 번갈아가며 실행되기만 하면 Multi-Programming 이라고 할 수 있다. 2. Multiprocessing CPU가 N개가 있을 때, ..

  • Relationship Between Threads and Processes 이 중, 주목해봐야할 관계는 Threads : Processes = 1 : M 스레드가 1개인데 프로세스가 여러개인 형태이다. 위의 시스템은 프로세스가 여러개인데, 스레드가 1개이다. P1, P2, P3가 같은 컴퓨터 시스템 안에 있는 경우라면 이런 방식은 말이 안된다. P1, P2, P3를 네트워크로 연결된 서로 다른 컴퓨터에서 각각의 프로세스를 관리하고 있고, 스레드는 P1에서 실행하다가 P2로 옮겨가고 P3로 옮겨가는 방식이다. 1 : N + M : 1 = N : M Windows Process and Thread Windows의 스레드 관리 방법 Multi-Threading System 을 거의 그대로 따르는, 기본이 되..

  • fork() Parent Process가 Child Process를 만들라는 명령어 → Child Process는 Parent Process의 모든 코드를 copy해간다. int main(){ int i; fork(); for(i=0;i Thread 생성 시간 프로세스 생성 → 모든 것을 copy 해야한다. 프로 독립된 구조체이다. 즉, 프로세스는 복사하게 되면 많은 양의 정보들을 복사해야하기 때문에 생성시간이 길어진다. ⇒ 생성시간도 길어지게 되고, 없앨 때도 메모리, 자원, 스위칭 시간 등등을 할당된 자원을 다시 반납해야 하기 때문에 소요시간이 길어지게 된다. ↔ 하지만, Thread는 프로그램 코드와 데이터를 Share 를 할 수 있기 때문에 모든 것을 copy할 필요가 없다. ⇒ 생성시간이 줄어들..

  • 기초 쿼리 문법 1. 작성 순서 SELECT - FROM - WHERE - GROUP BY - HAVING - ORDER BY SELECT (컬럼명) FROM (테이블명) GROUP BY(항상 WHERE 뒤) : 그룹화하여 단일 값으로 축소함 HAVING(항상 GROUP BY 뒤) : 그룹화 조건 확인 (count등이 쓰임) 2. 많이 쓰이는 함수 모음 DATE_FORMAT(시간값, 원하는 포맷) : 날짜형식 지정 Y : 2022, y : 22 M: september, m:09, a: Sep d:23(일자) T : hh:mm:ss 예시 SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, "%Y-%m-%d") AS HIRE_YMD FROM DOCTOR WHERE..

  • OS의 실행방식 세가지 1. Non-process kernel OS Kernel을 별개의 객체로 보는 방식이다. 각 Process 관리 방식 != OS kernel 관리 방식 OS는 특별한 권한을 가지고 있다. OS는 별개의 entity로 시스템 안에서 실행되는 객체이다. OS가 작아서 OS전체가 Memory에 올라갈 수 있던 옛날에 가능했던 방식이다. OS가 작아서 전체가 Memory에 올라가, Virtual Memory를 사용할 필요가 없다. 2. Execution Within User Processes OS를 User Process 안에서 실행시키는 방식이다. OS에서 굉장히 중요한 부분 빼고, 나머지 부분들을 Process 안에서 실행 시킨다. P1 ~ Pn까지 User Process안에 OS f..

  • OS 또한 Program이기에 Memory의 공간을 차지한다. tree가 pointer와 연결되어 있다. Primary Processiable 또한 OS에서 관리한다. Swapping Area에는 하드디스크일지라도 File Area에 들어 있는 실행 파일과 다르게 Code + Data + PCB + Stack이 모두 포함된 Process 상태로 저장되어 있다. Process Description OS가 Process를 어떻게 관리하는지가 중요하다. Operating System Control Structure 1. 각각의 Process와 여러가지 Resource의 Current Status에 대한 정보를 관리한다. 2. OS는 System 내부 자원 관리를 위해 다음의 네가지 테이블을 만들어서 관리한다...

  • OS는 프로그램을 정확하게, 효율적으로 관리해야한다. Application Program 을 관리하는 것이 첫 번째 일이다. OS는 시스템 안에서 실행되는 모든 프로그램을 관리할 때 어떤 형태의 자료구조 안에 넣고 관리를 하는가를 알아보도록 하자. Process 실행중인 프로그램 OS 입장에서는 프로그램이 어디까지 실행했는지가 중요하다. 프로그램이 실행을 시작하면 OS가 얘를 관리를 해야한다. 프로그램들을 어떠한 형태로 관리를 할 것이다. 그럼 OS 입장에서 프로그램을 어떠한 형태로 관리하느냐? 1. Sequence of instructions 한 줄 한 줄 프로그램을 실행하다보면 OS에게 중요한 것은 지금 어디까지 실행시켰는지가 매우 중요하다. 프로그램을 항상 save 하고 restore 하는 작업을 ..

  • Major Achivements of OS 1. Process 실행 중인 프로그램 컴파일 → 이진코드로 하드디스크에 저장이 되어 있다. 이 프로그램을 실행시키면 메모리에 올라가서 실행이 되게 된다. 실행하고 있는 프로그램을 OS가 Process라는 형태로 관리한다. ⇒ OS가 하는 일 중에 가장 중요한 일이 우리의 프로그램을 정확하고 효율적으로 실행시키는 것이다. 2. Memory Management 메모리는 모든 프로그램을 실행할만큼 크지 않다. → 메모리를 여러개로 잘라서 프로그램 여러개를 동시에 집어 넣어야 한다. 메모리 크기가 아무리 커도 그것보다 더 큰 프로그램이 존재할 수 있다. Virtual Memory 항상 프로그램의 일부만 갖다가 메모리에 넣고 실행을 하다가 다른 부분이 필요하면 그때 그..